From 8b08bfe3b41a08e48af905f4744dadfc164093b0 Mon Sep 17 00:00:00 2001 From: Evgenii Alekseev Date: Fri, 29 Nov 2024 17:07:09 +0200 Subject: [PATCH] ci: create regress job --- .github/workflows/regress.yml | 136 ++++++++++++++++++++++++++++++++++ docker/Dockerfile | 1 + docker/entrypoint-web.sh | 5 ++ 3 files changed, 142 insertions(+) create mode 100644 .github/workflows/regress.yml create mode 100755 docker/entrypoint-web.sh diff --git a/.github/workflows/regress.yml b/.github/workflows/regress.yml new file mode 100644 index 00000000..082b6ad1 --- /dev/null +++ b/.github/workflows/regress.yml @@ -0,0 +1,136 @@ +name: Regress + +on: workflow_dispatch + +jobs: + run-regress-tests: + + runs-on: ubuntu-latest + + services: + ahriman: + image: arcan1s/ahriman:edge + env: + AHRIMAN_PORT: 8080 + AHRIMAN_UNIX_SOCKET: /var/lib/ahriman/ahriman/ahriman-web.sock + options: --privileged --entrypoint entrypoint-web + ports: + - 8080 + volumes: + - repo:/var/lib/ahriman + + container: + image: arcan1s/ahriman:edge + env: + AHRIMAN_DEBUG: y + AHRIMAN_OUTPUT: console + AHRIMAN_PORT: 8080 + AHRIMAN_UNIX_SOCKET: /var/lib/ahriman/ahriman/ahriman-web.sock + options: --privileged + volumes: + - repo:/var/lib/ahriman + + steps: + - uses: actions/checkout@v3 + + - run: pacman -Sy + + - name: Init repository + run: entrypoint help + + - name: Print configuration + run: | + ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + service-config + + - name: Validate configuration + run: | + ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + service-config-validate + + - name: Create a user + run: | + sudo -u ahriman ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + user-add \ + --packager "github actions " \ + --password ahriman \ + --role full \ + ahriman + + - name: Fetch users + run: | + ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + user-list \ + --exit-code + + - name: Add package + run: | + sudo -u ahriman ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + package-add \ + --exit-code \ + --now \ + --refresh \ + ahriman + + - name: Update status of the package + run: | + ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + package-status-update \ + --status failed \ + ahriman + + - name: Request status of the package + run: | + ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + package-status \ + --exit-code \ + --info \ + --status failed \ + ahriman + + - name: Update packages + run: | + sudo -u ahriman ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + repo-update \ + --exit-code \ + || true + + - name: Add patch + run: | + echo '${pkgver%%.*}' | \ + sudo -u ahriman ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + patch-add \ + ahriman \ + pkgrel + + - name: Retrieve patches + run: | + ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + patch-list \ + --exit-code \ + ahriman + + - name: Rebuild packages + run: | + sudo -u ahriman ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + repo-rebuild \ + --depends-on python \ + --exit-code + + - name: Remove package + run: | + sudo -u ahriman ahriman \ + --log-handler "$AHRIMAN_OUTPUT" \ + package-remove \ + ahriman diff --git a/docker/Dockerfile b/docker/Dockerfile index fe0e87ad..c2618b96 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -136,6 +136,7 @@ VOLUME ["/var/lib/ahriman"] COPY "docker/systemd-nspawn.sh" "/usr/local/bin/systemd-nspawn" ## entrypoint setup COPY "docker/entrypoint.sh" "/usr/local/bin/entrypoint" +COPY "docker/entrypoint-web.sh" "/usr/local/bin/entrypoint-web" ENTRYPOINT ["entrypoint"] # default command CMD ["repo-update", "--refresh"] diff --git a/docker/entrypoint-web.sh b/docker/entrypoint-web.sh new file mode 100755 index 00000000..af6532ab --- /dev/null +++ b/docker/entrypoint-web.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# Special workaround for running web service in github actions, must not be usually used in real environment, +# consider running web command explicitly instead + +exec entrypoint web "$@" \ No newline at end of file