mirror of
https://github.com/trailofbits/algo
synced 2024-11-04 06:00:21 +00:00
a2fdc509e1
* Ubuntu 19.04 * Azure to 19.04
124 lines
3.2 KiB
YAML
124 lines
3.2 KiB
YAML
---
|
|
language: python
|
|
python: "2.7"
|
|
dist: xenial
|
|
|
|
services:
|
|
- docker
|
|
|
|
addons:
|
|
apt:
|
|
sources: &default_sources
|
|
- sourceline: 'ppa:ubuntu-lxc/stable'
|
|
- sourceline: 'ppa:wireguard/wireguard'
|
|
packages: &default_packages
|
|
- python-pip
|
|
- lxd
|
|
- expect-dev
|
|
- debootstrap
|
|
- tree
|
|
- bridge-utils
|
|
- dnsutils
|
|
- build-essential
|
|
- libssl-dev
|
|
- libffi-dev
|
|
- python-dev
|
|
- linux-headers-$(uname -r)
|
|
- wireguard
|
|
- libxml2-utils
|
|
- crudini
|
|
- fping
|
|
- strongswan
|
|
- libstrongswan-standard-plugins
|
|
|
|
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
|
|
|
|
custom_scripts:
|
|
provisioning: &provisioning
|
|
- ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''
|
|
- sudo ./tests/pre-deploy.sh
|
|
- 'sed -i "s/^reduce_mtu:\s0$/reduce_mtu: 20/" config.cfg'
|
|
tests: &tests
|
|
- sudo ./tests/wireguard-client.sh
|
|
- sudo env "PATH=$PATH" ./tests/ipsec-client.sh
|
|
- sudo ./tests/ssh-tunnel.sh
|
|
|
|
stages:
|
|
- &tests-and-linters
|
|
stage: Tests
|
|
name: code checks and linters
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- shellcheck
|
|
script:
|
|
- pip install ansible-lint
|
|
- shellcheck algo install.sh
|
|
- ansible-playbook main.yml --syntax-check
|
|
- ansible-lint -v *.yml
|
|
|
|
- &deploy-local
|
|
stage: Deploy
|
|
name: local deployment from docker
|
|
addons:
|
|
apt:
|
|
sources: *default_sources
|
|
packages: *default_packages
|
|
before_install: *provisioning
|
|
before_script:
|
|
- docker build -t travis/algo .
|
|
- ./tests/local-deploy.sh
|
|
- ./tests/update-users.sh
|
|
script: *tests
|
|
|
|
- &deploy-cloudinit
|
|
stage: Deploy
|
|
name: cloud-init deployment
|
|
addons:
|
|
apt:
|
|
sources: *default_sources
|
|
packages: *default_packages
|
|
env: DEPLOY=cloud-init
|
|
before_install: *provisioning
|
|
before_script:
|
|
- until sudo lxc exec algo -- test -f /var/log/cloud-init-output.log; do echo 'Log file not found, Sleep for 3 seconds'; sleep 3; done
|
|
- ( sudo lxc exec algo -- tail -f /var/log/cloud-init-output.log & )
|
|
- |
|
|
until sudo lxc exec algo -- test -f /var/lib/cloud/data/result.json; do
|
|
echo 'Cloud init is not finished. Sleep for 30 seconds';
|
|
sleep 30;
|
|
done
|
|
- sudo lxc exec algo -- test -f /opt/algo/configs/localhost/.config.yml
|
|
- sudo lxc exec algo -- tar zcf /root/algo-configs.tar -C /opt/algo/configs/ .
|
|
- sudo lxc file pull algo/root/algo-configs.tar ./
|
|
- sudo tar -C ./configs -zxf algo-configs.tar
|
|
script: *tests
|
|
|
|
matrix:
|
|
fast_finish: true
|
|
include:
|
|
- <<: *tests-and-linters
|
|
- <<: *deploy-local
|
|
name: 'Ubuntu 18.04: local deployment from docker'
|
|
env: DEPLOY=docker UBUNTU_VERSION=18.04
|
|
- <<: *deploy-local
|
|
name: 'Ubuntu 19.04: local deployment from docker'
|
|
env: DEPLOY=docker UBUNTU_VERSION=19.04
|
|
- <<: *deploy-cloudinit
|
|
name: 'Ubuntu 18.04: cloud-init deployment'
|
|
env: DEPLOY=cloud-init UBUNTU_VERSION=18.04
|
|
- <<: *deploy-cloudinit
|
|
name: 'Ubuntu 19.04: cloud-init deployment'
|
|
env: DEPLOY=cloud-init UBUNTU_VERSION=19.04
|
|
|
|
notifications:
|
|
email: false
|