From 7c3e3eb845af690ea061e0205f7ccd0885fefcd2 Mon Sep 17 00:00:00 2001
From: Neshura <neshura@neshweb.net>
Date: Sat, 5 Apr 2025 00:40:57 +0200
Subject: [PATCH] Split workflow files

---
 .forgejo/workflows/build+release.yml | 56 ---------------------
 .forgejo/workflows/pull-requests.yml | 46 -----------------
 .forgejo/workflows/unlighthouse.yml  | 75 ++++++++++++++++++++++++++++
 3 files changed, 75 insertions(+), 102 deletions(-)
 create mode 100644 .forgejo/workflows/unlighthouse.yml

diff --git a/.forgejo/workflows/build+release.yml b/.forgejo/workflows/build+release.yml
index ac4ded5..2195ac9 100644
--- a/.forgejo/workflows/build+release.yml
+++ b/.forgejo/workflows/build+release.yml
@@ -12,11 +12,9 @@ jobs:
     steps:
       - name: Checking Out Repository Code
         uses: https://code.forgejo.org/actions/checkout@v3
-
       - name: Get Yarn Cache Directory
         id: yarn-cache-dir-path
         run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
-
       - name: Set Up Yarn Cache
         uses: actions/cache@v3
         id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
@@ -25,65 +23,11 @@ jobs:
           key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
           restore-keys: |
             ${{ runner.os }}-yarn-
-
       - name: Install Dependencies
         run: yarn install
-
-      - name: Install Chromium for Unlighthouse
-        run: |
-          echo "apt update && apt install -y chromium"
-          apt update && apt install -y chromium
-          echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox" >> /etc/chromium.d/default-flags'
-          echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox"' >> /etc/chromium.d/default-flags
-
-      - name: Add Unlighthouse
-        run: |
-          echo "yarn global add @unlighthouse/cli"
-          yarn global add @unlighthouse/cli
-
       - name: Run Linter
         run: yarn lint
 
-      - name: Check if Version in package.json matches Tag
-        run: |
-          VERSION=$(cat package.json | grep "version" | sed 's/.*://' | tr -d , | tr -d \" | tr -d " " )
-          if test $VERSION != "${{ github.ref_name }}"; then 
-            echo "Expected Version is: '${{  github.ref_name }}' actual Version is: '$VERSION'"; 
-            exit 1
-          else 
-            echo "Version is: '$VERSION'"; 
-          fi    
-
-      - name: Build Site
-        run: yarn build
-
-      - name: Start Server
-        run: |
-          export KUMA_USERNAME=${{ secrets.KUMA_USERNAME }}
-          export KUMA_PASSWORD=${{ secrets.KUMA_PASSWORD }}
-          yarn preview &
-
-      - name: Run Unlighthouse for Desktop
-        run: unlighthouse-ci --build-static --desktop --outputPath reports/desktop
-
-      - name: Refresh Server
-        run: |
-          if ! pgrep -f "node /usr/bin/yarn" ; then
-            export KUMA_USERNAME=${{ secrets.KUMA_USERNAME }}
-            export KUMA_PASSWORD=${{ secrets.KUMA_PASSWORD }}
-            yarn preview &
-          fi
-
-      - name: Run Unlighthouse for Mobile
-        run: unlighthouse-ci --build-static --mobile --outputPath reports/mobile
-
-      - name: Uploading Lighthouse Reports
-        uses: actions/upload-artifact@v3
-        with:
-          name: lighthouse
-          path: reports
-          if-no-files-found: error
-
   build:
     needs: test
     if: success()
diff --git a/.forgejo/workflows/pull-requests.yml b/.forgejo/workflows/pull-requests.yml
index a117355..5acda87 100644
--- a/.forgejo/workflows/pull-requests.yml
+++ b/.forgejo/workflows/pull-requests.yml
@@ -12,11 +12,9 @@ jobs:
     steps:
       - name: Checking Out Repository Code
         uses: https://code.forgejo.org/actions/checkout@v3
-
       - name: Get Yarn Cache Directory
         id: yarn-cache-dir-path
         run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
-
       - name: Set Up Yarn Cache
         uses: actions/cache@v3
         id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
@@ -25,51 +23,7 @@ jobs:
           key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
           restore-keys: |
             ${{ runner.os }}-yarn-
-
       - name: Install Dependencies
         run: yarn install
-
-      - name: Install Chromium for Unlighthouse
-        run: |
-          echo "apt update && apt install -y chromium"
-          apt update && apt install -y chromium
-          echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox" >> /etc/chromium.d/default-flags'
-          echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox"' >> /etc/chromium.d/default-flags
-
-      - name: Add Unlighthouse
-        run: |
-          echo "yarn global add @unlighthouse/cli"
-          yarn global add @unlighthouse/cli
-
       - name: Run Linter
         run: yarn lint
-
-      - name: Build Site
-        run: yarn build
-
-      - name: Start Server
-        run: |
-          export KUMA_USERNAME=${{ secrets.KUMA_USERNAME }}
-          export KUMA_PASSWORD=${{ secrets.KUMA_PASSWORD }}
-          yarn preview &
-
-      - name: Run Unlighthouse for Desktop
-        run: unlighthouse-ci --build-static --desktop --outputPath reports/desktop
-
-      - name: Refresh Server
-        run: |
-          if ! pgrep -f "node /usr/bin/yarn" ; then
-            export KUMA_USERNAME=${{ secrets.KUMA_USERNAME }}
-            export KUMA_PASSWORD=${{ secrets.KUMA_PASSWORD }}
-            yarn preview &
-          fi
-
-      - name: Run Unlighthouse for Mobile
-        run: unlighthouse-ci --build-static --mobile --outputPath reports/mobile
-
-      - name: Uploading Lighthouse Reports
-        uses: actions/upload-artifact@v3
-        with:
-          name: lighthouse
-          path: reports
-          if-no-files-found: error
diff --git a/.forgejo/workflows/unlighthouse.yml b/.forgejo/workflows/unlighthouse.yml
new file mode 100644
index 0000000..e2b8908
--- /dev/null
+++ b/.forgejo/workflows/unlighthouse.yml
@@ -0,0 +1,75 @@
+name: 'Test Docker Image with Unlighthouse'
+author: 'Neshura'
+
+on:
+  push:
+    tags:
+      - '[0-9]+.[0-9]+.[0-9]+'
+      - '[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
+  pull_request:
+    branches:
+      - main
+jobs:
+  test:
+    runs-on: docker
+    steps:
+      - name: Checking Out Repository Code
+        uses: https://code.forgejo.org/actions/checkout@v3
+
+      - name: Get Yarn Cache Directory
+        id: yarn-cache-dir-path
+        run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
+
+      - name: Set Up Yarn Cache
+        uses: actions/cache@v3
+        id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
+        with:
+          path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
+          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-yarn-
+
+      - name: Install Dependencies
+        run: yarn install
+
+      - name: Install Chromium for Unlighthouse
+        run: |
+          echo "apt update && apt install -y chromium"
+          apt update && apt install -y chromium
+          echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox" >> /etc/chromium.d/default-flags'
+          echo 'export CHROMIUM_FLAGS="$CHROMIUM_FLAGS --no-sandbox"' >> /etc/chromium.d/default-flags
+
+      - name: Add Unlighthouse
+        run: |
+          echo "yarn global add @unlighthouse/cli"
+          yarn global add @unlighthouse/cli
+
+      - name: Build Site
+        run: yarn build
+
+      - name: Start Server
+        run: |
+          export KUMA_USERNAME=${{ secrets.KUMA_USERNAME }}
+          export KUMA_PASSWORD=${{ secrets.KUMA_PASSWORD }}
+          yarn preview &
+
+      - name: Run Unlighthouse for Desktop
+        run: unlighthouse-ci --build-static --desktop --outputPath reports/desktop
+
+      - name: Refresh Server
+        run: |
+          if ! pgrep -f "node /usr/bin/yarn" ; then
+            export KUMA_USERNAME=${{ secrets.KUMA_USERNAME }}
+            export KUMA_PASSWORD=${{ secrets.KUMA_PASSWORD }}
+            yarn preview &
+          fi
+
+      - name: Run Unlighthouse for Mobile
+        run: unlighthouse-ci --build-static --mobile --outputPath reports/mobile
+
+      - name: Uploading Lighthouse Reports
+        uses: actions/upload-artifact@v3
+        with:
+          name: lighthouse
+          path: reports
+          if-no-files-found: error
\ No newline at end of file