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