diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3b9d885..25817d3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,6 +11,10 @@ jobs: with: python-version: '3.7' + - name: test + run: | + env + echo ${{ github.event.pull_request.head.ref }} - name: Install dependencies run: | sudo apt update -y @@ -25,136 +29,136 @@ jobs: ansible-playbook main.yml --syntax-check ansible-lint -v *.yml roles/{local,cloud-*}/*/*.yml - scripted-deploy: - runs-on: ubuntu-16.04 - strategy: - matrix: - UBUNTU_VERSION: ["18.04", "19.04", "19.10"] - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-python@v1 - with: - python-version: '3.7' - - - name: Install dependencies - run: | - sudo apt update -y - sudo add-apt-repository -yu ppa:wireguard/wireguard - sudo apt install -y \ - python3-pip \ - lxd \ - expect-dev \ - debootstrap \ - tree \ - bridge-utils \ - dnsutils \ - build-essential \ - libssl-dev \ - libffi-dev \ - python3-dev \ - linux-headers-$(uname -r) \ - wireguard \ - libxml2-utils \ - crudini \ - fping \ - strongswan \ - libstrongswan-standard-plugins \ - resolvconf - - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements.txt - - - name: Provision - env: - DEPLOY: cloud-init - UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }} - 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 - sudo ./tests/ssh-tunnel.sh - - local-deploy: - runs-on: ubuntu-16.04 - strategy: - matrix: - UBUNTU_VERSION: ["18.04", "19.04", "19.10"] - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-python@v1 - with: - python-version: '3.7' - - - name: Install dependencies - run: | - set -x - sudo add-apt-repository -yu ppa:wireguard/wireguard - sudo add-apt-repository -yu ppa:ubuntu-lxc/stable - sudo apt update -y - sudo apt install -y \ - python3-pip \ - lxd \ - expect-dev \ - debootstrap \ - tree \ - bridge-utils \ - dnsutils \ - build-essential \ - libssl-dev \ - libffi-dev \ - python3-dev \ - linux-headers-$(uname -r) \ - wireguard \ - libxml2-utils \ - crudini \ - fping \ - strongswan \ - libstrongswan-standard-plugins \ - resolvconf - - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements.txt - - - name: Provision - env: - DEPLOY: docker - UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }} - 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 + # scripted-deploy: + # runs-on: ubuntu-16.04 + # strategy: + # matrix: + # UBUNTU_VERSION: ["18.04", "19.04", "19.10"] + # steps: + # - uses: actions/checkout@v1 + # - uses: actions/setup-python@v1 + # with: + # python-version: '3.7' + # + # - name: Install dependencies + # run: | + # sudo apt update -y + # sudo add-apt-repository -yu ppa:wireguard/wireguard + # sudo apt install -y \ + # python3-pip \ + # lxd \ + # expect-dev \ + # debootstrap \ + # tree \ + # bridge-utils \ + # dnsutils \ + # build-essential \ + # libssl-dev \ + # libffi-dev \ + # python3-dev \ + # linux-headers-$(uname -r) \ + # wireguard \ + # libxml2-utils \ + # crudini \ + # fping \ + # strongswan \ + # libstrongswan-standard-plugins \ + # resolvconf + # + # python3 -m pip install --upgrade pip + # python3 -m pip install -r requirements.txt + # + # - name: Provision + # env: + # DEPLOY: cloud-init + # UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }} + # 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 + # sudo ./tests/ssh-tunnel.sh + # + # local-deploy: + # runs-on: ubuntu-16.04 + # strategy: + # matrix: + # UBUNTU_VERSION: ["18.04", "19.04", "19.10"] + # steps: + # - uses: actions/checkout@v1 + # - uses: actions/setup-python@v1 + # with: + # python-version: '3.7' + # + # - name: Install dependencies + # run: | + # set -x + # sudo add-apt-repository -yu ppa:wireguard/wireguard + # sudo add-apt-repository -yu ppa:ubuntu-lxc/stable + # sudo apt update -y + # sudo apt install -y \ + # python3-pip \ + # lxd \ + # expect-dev \ + # debootstrap \ + # tree \ + # bridge-utils \ + # dnsutils \ + # build-essential \ + # libssl-dev \ + # libffi-dev \ + # python3-dev \ + # linux-headers-$(uname -r) \ + # wireguard \ + # libxml2-utils \ + # crudini \ + # fping \ + # strongswan \ + # libstrongswan-standard-plugins \ + # resolvconf + # + # python3 -m pip install --upgrade pip + # python3 -m pip install -r requirements.txt + # + # - name: Provision + # env: + # DEPLOY: docker + # UBUNTU_VERSION: ${{ matrix.UBUNTU_VERSION }} + # 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 diff --git a/tests/pre-deploy.sh b/tests/pre-deploy.sh index dc51008..aabfd54 100755 --- a/tests/pre-deploy.sh +++ b/tests/pre-deploy.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/algo.conf /etc/default/algo.conf -export REPOSITORY=${GITHUB_REPOSITORY} -export BRANCH=${GITHUB_REF#refs/heads/} +export REPOSITORY=${REPOSITORY:-${GITHUB_REPOSITORY}} +export BRANCH=${BRANCH:-$GITHUB_REF#refs/heads/}} if [[ "$DEPLOY" == "cloud-init" ]]; then bash tests/cloud-init.sh | lxc profile set default user.user-data -