2020-01-13 16:20:40 +00:00
|
|
|
name: Main
|
|
|
|
|
|
|
|
on: [push, pull_request]
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
lint:
|
2021-10-31 10:21:04 +00:00
|
|
|
runs-on: ubuntu-20.04
|
2020-01-13 16:20:40 +00:00
|
|
|
steps:
|
2022-06-13 21:11:21 +00:00
|
|
|
- uses: actions/checkout@v3
|
2022-02-17 08:38:34 +00:00
|
|
|
- uses: actions/setup-python@v2.3.2
|
2020-01-13 16:20:40 +00:00
|
|
|
with:
|
2021-12-14 20:52:34 +00:00
|
|
|
python-version: '3.9'
|
|
|
|
cache: 'pip'
|
2020-01-13 16:20:40 +00:00
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt update -y
|
|
|
|
python -m pip install --upgrade pip
|
|
|
|
pip install -r requirements.txt
|
|
|
|
sudo snap install shellcheck
|
|
|
|
pip install ansible-lint
|
|
|
|
|
|
|
|
- name: Checks and linters
|
|
|
|
run: |
|
|
|
|
/snap/bin/shellcheck algo install.sh
|
|
|
|
ansible-playbook main.yml --syntax-check
|
2021-05-25 15:04:59 +00:00
|
|
|
ansible-lint -x experimental,package-latest,unnamed-task -v *.yml roles/{local,cloud-*}/*/*.yml
|
2020-01-13 16:20:40 +00:00
|
|
|
|
|
|
|
scripted-deploy:
|
2021-10-31 10:21:04 +00:00
|
|
|
runs-on: ubuntu-20.04
|
2020-01-13 16:20:40 +00:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2021-12-14 20:52:34 +00:00
|
|
|
UBUNTU_VERSION: ["20.04"]
|
2020-01-13 16:20:40 +00:00
|
|
|
steps:
|
2022-06-13 21:11:21 +00:00
|
|
|
- uses: actions/checkout@v3
|
2022-02-17 08:38:34 +00:00
|
|
|
- uses: actions/setup-python@v2.3.2
|
2020-01-13 16:20:40 +00:00
|
|
|
with:
|
2021-12-14 20:52:34 +00:00
|
|
|
python-version: '3.9'
|
|
|
|
cache: 'pip'
|
2020-01-13 16:20:40 +00:00
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
sudo apt update -y
|
|
|
|
sudo apt install -y \
|
|
|
|
wireguard \
|
|
|
|
libxml2-utils \
|
|
|
|
crudini \
|
|
|
|
fping \
|
|
|
|
strongswan \
|
|
|
|
libstrongswan-standard-plugins \
|
2021-10-31 10:21:04 +00:00
|
|
|
openresolv
|
2020-01-13 16:20:40 +00:00
|
|
|
|
|
|
|
python3 -m pip install --upgrade pip
|
|
|
|
python3 -m pip install -r requirements.txt
|
|
|
|
|
2021-10-31 10:21:04 +00:00
|
|
|
sudo snap refresh lxd
|
|
|
|
sudo lxd init --auto
|
|
|
|
|
2020-01-13 16:20:40 +00:00
|
|
|
- name: Provision
|
|
|
|
env:
|
|
|
|
DEPLOY: cloud-init
|
|
|
|
UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
2020-01-16 12:06:11 +00:00
|
|
|
REPOSITORY: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name || github.repository }}
|
|
|
|
BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || github.ref }}
|
2020-01-13 16:20:40 +00:00
|
|
|
run: |
|
|
|
|
ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''
|
|
|
|
# sed -i "s/^reduce_mtu:\s0$/reduce_mtu: 80/" config.cfg
|
|
|
|
sudo -E ./tests/pre-deploy.sh
|
|
|
|
|
|
|
|
- name: Deployment
|
|
|
|
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
|
|
|
|
( 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
|
|
|
|
|
|
|
|
- name: Tests
|
|
|
|
run: |
|
|
|
|
set -x
|
|
|
|
sudo -E bash -x ./tests/wireguard-client.sh
|
|
|
|
sudo env "PATH=$PATH" ./tests/ipsec-client.sh
|
|
|
|
|
2021-10-31 10:21:04 +00:00
|
|
|
docker-deploy:
|
|
|
|
runs-on: ubuntu-20.04
|
2020-01-13 16:20:40 +00:00
|
|
|
strategy:
|
|
|
|
matrix:
|
2021-12-14 20:52:34 +00:00
|
|
|
UBUNTU_VERSION: ["20.04"]
|
2020-01-13 16:20:40 +00:00
|
|
|
steps:
|
2022-06-13 21:11:21 +00:00
|
|
|
- uses: actions/checkout@v3
|
2022-02-17 08:38:34 +00:00
|
|
|
- uses: actions/setup-python@v2.3.2
|
2020-01-13 16:20:40 +00:00
|
|
|
with:
|
2021-12-14 20:52:34 +00:00
|
|
|
python-version: '3.9'
|
|
|
|
cache: 'pip'
|
2020-01-13 16:20:40 +00:00
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: |
|
|
|
|
set -x
|
|
|
|
sudo apt update -y
|
|
|
|
sudo apt install -y \
|
|
|
|
wireguard \
|
|
|
|
libxml2-utils \
|
|
|
|
crudini \
|
|
|
|
fping \
|
|
|
|
strongswan \
|
|
|
|
libstrongswan-standard-plugins \
|
2021-10-31 10:21:04 +00:00
|
|
|
openresolv
|
2020-01-13 16:20:40 +00:00
|
|
|
|
|
|
|
python3 -m pip install --upgrade pip
|
|
|
|
python3 -m pip install -r requirements.txt
|
|
|
|
|
2021-10-31 10:21:04 +00:00
|
|
|
sudo snap refresh lxd
|
|
|
|
sudo lxd init --auto
|
|
|
|
|
2020-01-13 16:20:40 +00:00
|
|
|
- name: Provision
|
|
|
|
env:
|
|
|
|
DEPLOY: docker
|
|
|
|
UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
2020-01-16 12:37:37 +00:00
|
|
|
REPOSITORY: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name || github.repository }}
|
|
|
|
BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || github.ref }}
|
2020-01-13 16:20:40 +00:00
|
|
|
run: |
|
|
|
|
ssh-keygen -f ~/.ssh/id_rsa -t rsa -N ''
|
|
|
|
sed -i "s/^reduce_mtu:\s0$/reduce_mtu: 80/" config.cfg
|
|
|
|
sudo -E ./tests/pre-deploy.sh
|
|
|
|
|
|
|
|
- name: Deployment
|
|
|
|
env:
|
|
|
|
DEPLOY: docker
|
|
|
|
UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }}
|
|
|
|
run: |
|
|
|
|
docker build -t local/algo .
|
|
|
|
./tests/local-deploy.sh
|
|
|
|
./tests/update-users.sh
|
|
|
|
|
|
|
|
- name: Tests
|
|
|
|
run: |
|
|
|
|
set -x
|
|
|
|
sudo bash -x ./tests/wireguard-client.sh
|
|
|
|
sudo env "PATH=$PATH" bash -x ./tests/ipsec-client.sh
|
|
|
|
sudo bash -x ./tests/ssh-tunnel.sh
|