mirror of
https://github.com/trailofbits/algo.git
synced 2025-08-02 19:03:04 +02:00
test
This commit is contained in:
parent
43633a0450
commit
58774c4d99
2 changed files with 139 additions and 135 deletions
270
.github/workflows/main.yml
vendored
270
.github/workflows/main.yml
vendored
|
@ -11,6 +11,10 @@ jobs:
|
||||||
with:
|
with:
|
||||||
python-version: '3.7'
|
python-version: '3.7'
|
||||||
|
|
||||||
|
- name: test
|
||||||
|
run: |
|
||||||
|
env
|
||||||
|
echo ${{ github.event.pull_request.head.ref }}
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
sudo apt update -y
|
sudo apt update -y
|
||||||
|
@ -25,136 +29,136 @@ jobs:
|
||||||
ansible-playbook main.yml --syntax-check
|
ansible-playbook main.yml --syntax-check
|
||||||
ansible-lint -v *.yml roles/{local,cloud-*}/*/*.yml
|
ansible-lint -v *.yml roles/{local,cloud-*}/*/*.yml
|
||||||
|
|
||||||
scripted-deploy:
|
# scripted-deploy:
|
||||||
runs-on: ubuntu-16.04
|
# runs-on: ubuntu-16.04
|
||||||
strategy:
|
# strategy:
|
||||||
matrix:
|
# matrix:
|
||||||
UBUNTU_VERSION: ["18.04", "19.04", "19.10"]
|
# UBUNTU_VERSION: ["18.04", "19.04", "19.10"]
|
||||||
steps:
|
# steps:
|
||||||
- uses: actions/checkout@v1
|
# - uses: actions/checkout@v1
|
||||||
- uses: actions/setup-python@v1
|
# - uses: actions/setup-python@v1
|
||||||
with:
|
# with:
|
||||||
python-version: '3.7'
|
# python-version: '3.7'
|
||||||
|
#
|
||||||
- name: Install dependencies
|
# - name: Install dependencies
|
||||||
run: |
|
# run: |
|
||||||
sudo apt update -y
|
# sudo apt update -y
|
||||||
sudo add-apt-repository -yu ppa:wireguard/wireguard
|
# sudo add-apt-repository -yu ppa:wireguard/wireguard
|
||||||
sudo apt install -y \
|
# sudo apt install -y \
|
||||||
python3-pip \
|
# python3-pip \
|
||||||
lxd \
|
# lxd \
|
||||||
expect-dev \
|
# expect-dev \
|
||||||
debootstrap \
|
# debootstrap \
|
||||||
tree \
|
# tree \
|
||||||
bridge-utils \
|
# bridge-utils \
|
||||||
dnsutils \
|
# dnsutils \
|
||||||
build-essential \
|
# build-essential \
|
||||||
libssl-dev \
|
# libssl-dev \
|
||||||
libffi-dev \
|
# libffi-dev \
|
||||||
python3-dev \
|
# python3-dev \
|
||||||
linux-headers-$(uname -r) \
|
# linux-headers-$(uname -r) \
|
||||||
wireguard \
|
# wireguard \
|
||||||
libxml2-utils \
|
# libxml2-utils \
|
||||||
crudini \
|
# crudini \
|
||||||
fping \
|
# fping \
|
||||||
strongswan \
|
# strongswan \
|
||||||
libstrongswan-standard-plugins \
|
# libstrongswan-standard-plugins \
|
||||||
resolvconf
|
# resolvconf
|
||||||
|
#
|
||||||
python3 -m pip install --upgrade pip
|
# python3 -m pip install --upgrade pip
|
||||||
python3 -m pip install -r requirements.txt
|
# python3 -m pip install -r requirements.txt
|
||||||
|
#
|
||||||
- name: Provision
|
# - name: Provision
|
||||||
env:
|
# env:
|
||||||
DEPLOY: cloud-init
|
# DEPLOY: cloud-init
|
||||||
UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
# UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
||||||
run: |
|
# run: |
|
||||||
ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''
|
# ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''
|
||||||
# sed -i "s/^reduce_mtu:\s0$/reduce_mtu: 80/" config.cfg
|
# # sed -i "s/^reduce_mtu:\s0$/reduce_mtu: 80/" config.cfg
|
||||||
sudo -E ./tests/pre-deploy.sh
|
# sudo -E ./tests/pre-deploy.sh
|
||||||
|
#
|
||||||
- name: Deployment
|
# - name: Deployment
|
||||||
run: |
|
# run: |
|
||||||
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
|
# 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 & )
|
# ( 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
|
# until sudo lxc exec algo -- test -f /var/lib/cloud/data/result.json; do
|
||||||
echo 'Cloud init is not finished. Sleep for 30 seconds';
|
# echo 'Cloud init is not finished. Sleep for 30 seconds';
|
||||||
sleep 30;
|
# sleep 30;
|
||||||
done
|
# done
|
||||||
sudo lxc exec algo -- test -f /opt/algo/configs/localhost/.config.yml
|
# 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 exec algo -- tar zcf /root/algo-configs.tar -C /opt/algo/configs/ .
|
||||||
sudo lxc file pull algo/root/algo-configs.tar ./
|
# sudo lxc file pull algo/root/algo-configs.tar ./
|
||||||
sudo tar -C ./configs -zxf algo-configs.tar
|
# sudo tar -C ./configs -zxf algo-configs.tar
|
||||||
|
#
|
||||||
- name: Tests
|
# - name: Tests
|
||||||
run: |
|
# run: |
|
||||||
set -x
|
# set -x
|
||||||
sudo -E bash -x ./tests/wireguard-client.sh
|
# sudo -E bash -x ./tests/wireguard-client.sh
|
||||||
sudo env "PATH=$PATH" ./tests/ipsec-client.sh
|
# sudo env "PATH=$PATH" ./tests/ipsec-client.sh
|
||||||
sudo ./tests/ssh-tunnel.sh
|
# sudo ./tests/ssh-tunnel.sh
|
||||||
|
#
|
||||||
local-deploy:
|
# local-deploy:
|
||||||
runs-on: ubuntu-16.04
|
# runs-on: ubuntu-16.04
|
||||||
strategy:
|
# strategy:
|
||||||
matrix:
|
# matrix:
|
||||||
UBUNTU_VERSION: ["18.04", "19.04", "19.10"]
|
# UBUNTU_VERSION: ["18.04", "19.04", "19.10"]
|
||||||
steps:
|
# steps:
|
||||||
- uses: actions/checkout@v1
|
# - uses: actions/checkout@v1
|
||||||
- uses: actions/setup-python@v1
|
# - uses: actions/setup-python@v1
|
||||||
with:
|
# with:
|
||||||
python-version: '3.7'
|
# python-version: '3.7'
|
||||||
|
#
|
||||||
- name: Install dependencies
|
# - name: Install dependencies
|
||||||
run: |
|
# run: |
|
||||||
set -x
|
# set -x
|
||||||
sudo add-apt-repository -yu ppa:wireguard/wireguard
|
# sudo add-apt-repository -yu ppa:wireguard/wireguard
|
||||||
sudo add-apt-repository -yu ppa:ubuntu-lxc/stable
|
# sudo add-apt-repository -yu ppa:ubuntu-lxc/stable
|
||||||
sudo apt update -y
|
# sudo apt update -y
|
||||||
sudo apt install -y \
|
# sudo apt install -y \
|
||||||
python3-pip \
|
# python3-pip \
|
||||||
lxd \
|
# lxd \
|
||||||
expect-dev \
|
# expect-dev \
|
||||||
debootstrap \
|
# debootstrap \
|
||||||
tree \
|
# tree \
|
||||||
bridge-utils \
|
# bridge-utils \
|
||||||
dnsutils \
|
# dnsutils \
|
||||||
build-essential \
|
# build-essential \
|
||||||
libssl-dev \
|
# libssl-dev \
|
||||||
libffi-dev \
|
# libffi-dev \
|
||||||
python3-dev \
|
# python3-dev \
|
||||||
linux-headers-$(uname -r) \
|
# linux-headers-$(uname -r) \
|
||||||
wireguard \
|
# wireguard \
|
||||||
libxml2-utils \
|
# libxml2-utils \
|
||||||
crudini \
|
# crudini \
|
||||||
fping \
|
# fping \
|
||||||
strongswan \
|
# strongswan \
|
||||||
libstrongswan-standard-plugins \
|
# libstrongswan-standard-plugins \
|
||||||
resolvconf
|
# resolvconf
|
||||||
|
#
|
||||||
python3 -m pip install --upgrade pip
|
# python3 -m pip install --upgrade pip
|
||||||
python3 -m pip install -r requirements.txt
|
# python3 -m pip install -r requirements.txt
|
||||||
|
#
|
||||||
- name: Provision
|
# - name: Provision
|
||||||
env:
|
# env:
|
||||||
DEPLOY: docker
|
# DEPLOY: docker
|
||||||
UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
# UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
||||||
run: |
|
# run: |
|
||||||
ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''
|
# ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''
|
||||||
sed -i "s/^reduce_mtu:\s0$/reduce_mtu: 80/" config.cfg
|
# sed -i "s/^reduce_mtu:\s0$/reduce_mtu: 80/" config.cfg
|
||||||
sudo -E ./tests/pre-deploy.sh
|
# sudo -E ./tests/pre-deploy.sh
|
||||||
|
#
|
||||||
- name: Deployment
|
# - name: Deployment
|
||||||
env:
|
# env:
|
||||||
DEPLOY: docker
|
# DEPLOY: docker
|
||||||
UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
# UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
||||||
run: |
|
# run: |
|
||||||
docker build -t local/algo .
|
# docker build -t local/algo .
|
||||||
./tests/local-deploy.sh
|
# ./tests/local-deploy.sh
|
||||||
./tests/update-users.sh
|
# ./tests/update-users.sh
|
||||||
|
#
|
||||||
- name: Tests
|
# - name: Tests
|
||||||
run: |
|
# run: |
|
||||||
set -x
|
# set -x
|
||||||
sudo bash -x ./tests/wireguard-client.sh
|
# sudo bash -x ./tests/wireguard-client.sh
|
||||||
sudo env "PATH=$PATH" bash -x ./tests/ipsec-client.sh
|
# sudo env "PATH=$PATH" bash -x ./tests/ipsec-client.sh
|
||||||
sudo bash -x ./tests/ssh-tunnel.sh
|
# sudo bash -x ./tests/ssh-tunnel.sh
|
||||||
|
|
|
@ -8,8 +8,8 @@ tar xf $HOME/lxc/cache.tar -C / || echo "Didn't extract cache."
|
||||||
cp -f tests/lxd-bridge /etc/default/lxd-bridge
|
cp -f tests/lxd-bridge /etc/default/lxd-bridge
|
||||||
cp -f tests/algo.conf /etc/default/algo.conf
|
cp -f tests/algo.conf /etc/default/algo.conf
|
||||||
|
|
||||||
export REPOSITORY=${GITHUB_REPOSITORY}
|
export REPOSITORY=${REPOSITORY:-${GITHUB_REPOSITORY}}
|
||||||
export BRANCH=${GITHUB_REF#refs/heads/}
|
export BRANCH=${BRANCH:-$GITHUB_REF#refs/heads/}}
|
||||||
|
|
||||||
if [[ "$DEPLOY" == "cloud-init" ]]; then
|
if [[ "$DEPLOY" == "cloud-init" ]]; then
|
||||||
bash tests/cloud-init.sh | lxc profile set default user.user-data -
|
bash tests/cloud-init.sh | lxc profile set default user.user-data -
|
||||||
|
|
Loading…
Add table
Reference in a new issue