--- language: python python: "2.7" sudo: required dist: trusty services: - docker matrix: fast_finish: true addons: apt: sources: - sourceline: 'ppa:ubuntu-lxc/stable' - sourceline: 'ppa:wireguard/wireguard' packages: - python-pip - lxd - expect-dev - debootstrap - shellcheck - tree - bridge-utils - dnsutils - build-essential - libssl-dev - libffi-dev - python-dev - linux-headers-$(uname -r) - wireguard-dkms cache: directories: - $HOME/lxc/ pip: true before_cache: - mkdir $HOME/lxc - sudo tar cf $HOME/lxc/cache.tar /var/lib/lxd/images/ - sudo chown $USER. $HOME/lxc/cache.tar env: - LXC_NAME=docker LXC_DISTRO=ubuntu LXC_RELEASE=18.04 before_install: - test "${LXC_NAME}" != "docker" && sudo modprobe wireguard || docker build -t travis/algo . install: - sudo tar xf $HOME/lxc/cache.tar -C / || echo "Didn't extract cache." - ssh-keygen -f ~/.ssh/id_rsa -t rsa -N '' - chmod 0644 ~/.ssh/config - echo -e "#cloud-config\nssh_authorized_keys:\n - $(cat ~/.ssh/id_rsa.pub)" | sudo lxc profile set default user.user-data - - sudo cp -f tests/lxd-bridge /etc/default/lxd-bridge - sudo service lxd restart - sudo lxc launch ${LXC_DISTRO}:${LXC_RELEASE} ${LXC_NAME} - until host ${LXC_NAME}.lxd 10.0.8.1 -t A; do sleep 3; done - export LXC_IP="$(dig ${LXC_NAME}.lxd @10.0.8.1 +short)" - pip install -r requirements.txt - pip install ansible-lint - gem install awesome_bot - ansible-playbook --version - tree . -L 2 script: # - awesome_bot --allow-dupe --skip-save-results *.md docs/*.md --white-list paypal.com,do.co,microsoft.com,https://github.com/trailofbits/algo/archive/master.zip,https://github.com/trailofbits/algo/issues/new # - shellcheck algo # - ansible-lint main.yml users.yml deploy_client.yml - ansible-playbook main.yml --syntax-check - ./tests/local-deploy.sh - ./tests/update-users.sh notifications: email: false