| Adam Israel | b094366 | 2018-08-02 15:32:00 -0400 | [diff] [blame] | 1 | dist: xenial |
| Adam Israel | dcdf82b | 2017-08-15 15:26:43 -0400 | [diff] [blame] | 2 | sudo: required |
| 3 | language: python |
| Adam Israel | b094366 | 2018-08-02 15:32:00 -0400 | [diff] [blame] | 4 | cache: pip |
| Adam Israel | dcdf82b | 2017-08-15 15:26:43 -0400 | [diff] [blame] | 5 | before_install: |
| Adam Israel | b094366 | 2018-08-02 15:32:00 -0400 | [diff] [blame] | 6 | - if [[ $TRAVIS_PYTHON_VERSION == '3.6' ]]; then sudo add-apt-repository -y ppa:jonathonf/python-3.6; fi |
| 7 | - if [[ $TRAVIS_PYTHON_VERSION == '3.7-dev' ]]; then sudo add-apt-repository -y ppa:deadsnakes/ppa; fi |
| Adam Israel | dcdf82b | 2017-08-15 15:26:43 -0400 | [diff] [blame] | 8 | - sudo apt-get update -q |
| Adam Israel | c3e6c2e | 2018-03-01 09:31:50 -0500 | [diff] [blame] | 9 | - sudo apt-get remove -qy lxd lxd-client |
| 10 | - sudo apt-get install snapd libsodium-dev -y |
| Adam Israel | b094366 | 2018-08-02 15:32:00 -0400 | [diff] [blame] | 11 | install: |
| 12 | - sudo snap install lxd || true # ignore failures so that unit tests will still run, at least |
| 13 | - sudo sh -c 'echo PATH=/snap/bin:$PATH >> /etc/environment'; |
| 14 | - sudo snap install jq || true |
| 15 | - sudo snap install juju --classic --$JUJU_CHANNEL || true |
| Adam Israel | c3e6c2e | 2018-03-01 09:31:50 -0500 | [diff] [blame] | 16 | - sudo snap install juju-wait --classic || true |
| Adam Israel | b094366 | 2018-08-02 15:32:00 -0400 | [diff] [blame] | 17 | - pip install tox-travis |
| Adam Israel | dcdf82b | 2017-08-15 15:26:43 -0400 | [diff] [blame] | 18 | env: |
| Adam Israel | c3e6c2e | 2018-03-01 09:31:50 -0500 | [diff] [blame] | 19 | global: > |
| 20 | TEST_AGENTS='{"agents":[{"url":"https://api.staging.jujucharms.com/identity","username":"libjuju-ci@yellow"}],"key":{"private":"88OOCxIHQNguRG7zFg2y2Hx5Ob0SeVKKBRnjyehverc=","public":"fDn20+5FGyN2hYO7z0rFUyoHGUnfrleslUNtoYsjNSs="}}' |
| Adam Israel | b094366 | 2018-08-02 15:32:00 -0400 | [diff] [blame] | 21 | LXD_PASSWORD="password" |
| 22 | PATH="/snap/bin:$PATH" |
| 23 | |
| 24 | matrix: |
| 25 | include: |
| 26 | - python: 3.6 |
| 27 | env: JUJU_CHANNEL=edge |
| 28 | - python: 3.6 |
| 29 | env: JUJU_CHANNEL=stable |
| 30 | - python: 3.7-dev |
| 31 | env: JUJU_CHANNEL=stable |
| 32 | - python: 3.7-dev |
| 33 | env: JUJU_CHANNEL=edge |
| 34 | before_script: |
| 35 | - sudo lxd waitready --timeout 30 |
| 36 | - sudo lxc storage create default dir |
| 37 | - sudo lxd init --auto --trust-password="${LXD_PASSWORD}" --network-address='[::]' --network-port=8443 |
| 38 | |
| 39 | # I suspect these could be integrated into the lxd init call |
| 40 | - sudo sudo mkdir /var/snap/lxd/common/lxd/storage-pools/juju-zfs |
| 41 | - sudo lxc storage create juju-zfs dir source=/var/snap/lxd/common/lxd/storage-pools/juju-zfs # Horrible workaround to LP Bug #1738614 |
| 42 | |
| 43 | - sudo addgroup lxd || true |
| 44 | - sudo usermod -a -G lxd $USER || true |
| 45 | # Trigger generation of the client certificates |
| 46 | - sg lxd -c "echo y|lxc remote add "$USER" https://0.0.0.0:8443 --accept-certificate --password='${LXD_PASSWORD}'" |
| 47 | |
| Adam Israel | dcdf82b | 2017-08-15 15:26:43 -0400 | [diff] [blame] | 48 | script: |
| Adam Israel | b094366 | 2018-08-02 15:32:00 -0400 | [diff] [blame] | 49 | - sudo -E sudo -u $USER -E juju bootstrap localhost test --config 'identity-url=https://api.staging.jujucharms.com/identity' --config 'allow-model-access=true' |
| 50 | - tox -e py3,integration,serial |