Improved Primitive support and better testing
[osm/N2VC.git] / modules / libjuju / .travis.yml
1 dist: xenial
2 sudo: required
3 language: python
4 cache: pip
5 before_install:
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
8   - sudo apt-get update -q
9   - sudo apt-get remove -qy lxd lxd-client
10   - sudo apt-get install snapd libsodium-dev -y
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
16   - sudo snap install juju-wait --classic || true
17   - pip install tox-travis
18 env:
19   global: >
20     TEST_AGENTS='{"agents":[{"url":"https://api.staging.jujucharms.com/identity","username":"libjuju-ci@yellow"}],"key":{"private":"88OOCxIHQNguRG7zFg2y2Hx5Ob0SeVKKBRnjyehverc=","public":"fDn20+5FGyN2hYO7z0rFUyoHGUnfrleslUNtoYsjNSs="}}'
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
48 script:
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