This commit is contained in:
Jack Ivanov 2020-01-16 11:02:40 +01:00
parent 43633a0450
commit 58774c4d99
2 changed files with 139 additions and 135 deletions

View file

@ -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

View file

@ -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 -