From 718ca750b2f223841dddeb02e5b11b3899154db5 Mon Sep 17 00:00:00 2001 From: McDope Date: Mon, 1 Jan 2024 18:44:57 +0100 Subject: [PATCH] Move CI to homelab (#214) - adds port support for CI action - moves ci from X to Homelab --- .../build-and-test-on-own-server.yml | 200 ++++++++-------- .github/workflows/devskim.yml | 2 +- .../workflows/nightly-build-on-own-server.yml | 126 +++++----- .../package-with-docker-on-own-server.yml | 216 ++++++++++-------- 4 files changed, 302 insertions(+), 242 deletions(-) diff --git a/.github/workflows/build-and-test-on-own-server.yml b/.github/workflows/build-and-test-on-own-server.yml index 02383c98..58712bb6 100644 --- a/.github/workflows/build-and-test-on-own-server.yml +++ b/.github/workflows/build-and-test-on-own-server.yml @@ -9,7 +9,7 @@ on: jobs: DoMagicOnConfiguredCustomRunner: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - name: Install sshpass on Github runner @@ -18,138 +18,160 @@ jobs: run: exit 0 - name: Check for lockfile and wait if it exists env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "while [ -f .tests-running ]; do sleep 2; done" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "while [ -f .tests-running ]; do sleep 2; done" - name: Create lockfile env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "touch .tests-running" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "touch .tests-running" - name: Install requirements env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "sudo apt install libudisks2-dev libxml2-dev python libpam0g-dev devscripts debhelper dh-systemd dkms pkg-config gir1.2-glib-2.0 libglib2.0-dev" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "sudo apt --yes install fdisk libudisks2-dev libxml2-dev python-is-python3 libpam0g-dev devscripts debhelper dkms pkg-config gir1.2-glib-2.0 libglib2.0-dev" - name: git clone env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "rm -rf ~/pam_usb_$GITHUB_RUN_ID; mkdir ~/pam_usb_$GITHUB_RUN_ID; cd ~/pam_usb_$GITHUB_RUN_ID && git clone https://github.com/mcdope/pam_usb.git ." + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "rm -rf ~/pam_usb_$GITHUB_RUN_ID; mkdir ~/pam_usb_$GITHUB_RUN_ID; cd ~/pam_usb_$GITHUB_RUN_ID && git clone https://github.com/mcdope/pam_usb.git ." - name: git fetch --all env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~/pam_usb_$GITHUB_RUN_ID && git fetch --all" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~/pam_usb_$GITHUB_RUN_ID && git fetch --all" - name: git reset --hard env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~/pam_usb_$GITHUB_RUN_ID && git reset --hard" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~/pam_usb_$GITHUB_RUN_ID && git reset --hard" - name: git switch -f env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} REF_TO_CHECKOUT: ${{ github.head_ref }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~/pam_usb_$GITHUB_RUN_ID && git switch -f $REF_TO_CHECKOUT || git switch -f master" + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~/pam_usb_$GITHUB_RUN_ID && git switch -f $REF_TO_CHECKOUT || git switch -f master" - name: git pull env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~/pam_usb_$GITHUB_RUN_ID && git pull" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~/pam_usb_$GITHUB_RUN_ID && git pull" - name: remove previously installed package (ensure no config) env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "sudo apt purge --yes libpam-usb || exit 0" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "sudo apt purge --yes libpam-usb || exit 0" - name: remove previously built packages env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~ && rm *.deb || exit 0" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~ && rm *.deb || exit 0" - name: remove previous fakestick if existing env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~/pam_usb_$GITHUB_RUN_ID/tests/can-actually-be-used && ./umount-image.sh" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~/pam_usb_$GITHUB_RUN_ID/tests/can-actually-be-used && ./umount-image.sh" - name: make deb env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~/pam_usb_$GITHUB_RUN_ID && make deb" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~/pam_usb_$GITHUB_RUN_ID && make deb" - name: install created .deb package env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "cd ~/pam_usb_$GITHUB_RUN_ID && sudo DEBIAN_FRONTEND=noninteractive apt install --reinstall -yq ../*.deb" + TEST_RUNNER_HOST_NEW: ${{ secrets.TEST_RUNNER_HOST_NEW }} + TEST_RUNNER_USER_NEW: ${{ secrets.TEST_RUNNER_USER_NEW }} + TEST_RUNNER_PASS_NEW: ${{ secrets.TEST_RUNNER_PASS_NEW }} + TEST_RUNNER_PORT_NEW: ${{ secrets.TEST_RUNNER_PORT_NEW }} + run: sshpass -p "$TEST_RUNNER_PASS_NEW" ssh -o StrictHostKeyChecking=no -p $TEST_RUNNER_PORT_NEW $TEST_RUNNER_USER_NEW@$TEST_RUNNER_HOST_NEW "cd ~/pam_usb_$GITHUB_RUN_ID && sudo DEBIAN_FRONTEND=noninteractive apt install --reinstall -yq ../*.deb" - name: disable deny_remote option # ... else the verify test cant be successful if run from a remote host like Github actions runner env: - TEST_RUNNER_HOST: ${{ secrets.TEST_RUNNER_HOST }} - TEST_RUNNER_USER: ${{ secrets.TEST_RUNNER_USER }} - TEST_RUNNER_PASS: ${{ secrets.TEST_RUNNER_PASS }} - run: sshpass -p "$TEST_RUNNER_PASS" ssh -o StrictHostKeyChecking=no $TEST_RUNNER_USER@$TEST_RUNNER_HOST "sudo sed -i 's//