From 0be235a212e75cfc463a1b869b39822027108240 Mon Sep 17 00:00:00 2001 From: DeeDeeG Date: Thu, 18 Apr 2024 17:16:48 -0400 Subject: [PATCH 1/3] CI: Upgrade or replace all deprecated GH Actions Most of these were old versions of actions which were running on Node 16. Upgraded them to newer versions which run on Node 20 instead. Also tried to replace setup-xvfb action with a direct xvfb-run command. Let's hope this works. --- .github/workflows/build.yml | 34 +++++++++---------- .github/workflows/documentation.yml | 6 ++-- .github/workflows/editor-tests.yml | 8 ++--- .github/workflows/package-tests-linux.yml | 16 ++++----- .../workflows/validate-wasm-grammar-prs.yml | 4 +-- 5 files changed, 33 insertions(+), 35 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e45f2794e0..d381edcba9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,10 +40,10 @@ jobs: run: apt-get update && apt-get install -y git python3 python3-pip make gcc g++ libx11-dev libxkbfile-dev pkg-config libsecret-1-dev rpm xvfb ffmpeg zstd - name: Checkout the latest code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} @@ -52,7 +52,7 @@ jobs: # which won't work in a Debian 10 Docker image. # Get Python from apt repos instead on Linux. if: ${{ runner.os != 'Linux' }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ env.PYTHON_VERSION }} @@ -101,7 +101,7 @@ jobs: run: npx node-gyp install ${{ env.NODE_VERSION }} - name: Install Pulsar Dependencies - uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e with: timeout_minutes: 30 max_attempts: 3 @@ -110,7 +110,7 @@ jobs: on_retry_command: rm -R node_modules - name: Build Pulsar - uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e with: timeout_minutes: 30 max_attempts: 3 @@ -121,7 +121,7 @@ jobs: - name: Cache Pulsar dependencies - Linux if: ${{ runner.os == 'Linux' }} - uses: actions/cache/save@v3 + uses: actions/cache/save@v4 with: path: | node_modules @@ -140,7 +140,7 @@ jobs: APPLEID: ${{ secrets.APPLEID }} APPLEID_PASSWORD: ${{ secrets.APPLEID_PASSWORD }} TEAM_ID: ${{ secrets.TEAM_ID }} - uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e with: timeout_minutes: 45 max_attempts: 3 @@ -149,7 +149,7 @@ jobs: - name: Build Pulsar Binaries (macOS) (Unsigned) if: ${{ runner.os == 'macOS' && github.event_name != 'push' }} - uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e with: timeout_minutes: 45 max_attempts: 3 @@ -158,7 +158,7 @@ jobs: - name: Build Pulsar Binaries if: ${{ runner.os != 'macOS' }} - uses: nick-fields/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd + uses: nick-fields/retry@7152eba30c6575329ac0576536151aca5a72780e with: timeout_minutes: 30 max_attempts: 3 @@ -179,13 +179,13 @@ jobs: - name: Cache Pulsar Binaries - Linux if: ${{ runner.os == 'Linux' }} - uses: actions/cache/save@v3 + uses: actions/cache/save@v4 with: path: ./binaries key: pulsar-Linux-Binaries-${{ github.sha }}-${{ github.workflow }} - name: Upload Binary Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.os }} Binaries path: ./binaries/* @@ -219,7 +219,7 @@ jobs: - name: Upload Video Artifacts # Run whether this job passed or failed, unless explicitly cancelled. if: ${{ !cancelled() && runner.os != 'Linux' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.os }} Videos path: ./tests/videos/** @@ -235,23 +235,23 @@ jobs: steps: - name: Checkout the latest code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} - name: Restore Cached Pulsar Binaries - Linux if: ${{ runner.os == 'Linux' }} - uses: actions/cache/restore@v3 + uses: actions/cache/restore@v4 with: path: ./binaries key: pulsar-Linux-Binaries-${{ github.sha }}-${{ github.workflow }} - name: Restore Cached Pulsar dependencies - Linux if: ${{ runner.os == 'Linux' }} - uses: actions/cache/restore@v3 + uses: actions/cache/restore@v4 with: path: | node_modules @@ -285,7 +285,7 @@ jobs: - name: Upload Video Artifacts - Linux # Run whether this job passed or failed, unless explicitly cancelled. if: ${{ !cancelled() && runner.os == 'Linux' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ matrix.os }} Videos path: ./tests/videos/** diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index a6899e8bca..d0b7eb939a 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -20,10 +20,10 @@ jobs: steps: - name: Checkout the Latest Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup NodeJS - ${{ matrix.node-version }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} @@ -43,6 +43,6 @@ jobs: run: yarn run private-js-docs - name: Commit All Changes - uses: stefanzweifel/git-auto-commit-action@v4 + uses: stefanzweifel/git-auto-commit-action@v5 with: commit_message: GH Action Documentation diff --git a/.github/workflows/editor-tests.yml b/.github/workflows/editor-tests.yml index 18a6c18839..a753f88d3e 100644 --- a/.github/workflows/editor-tests.yml +++ b/.github/workflows/editor-tests.yml @@ -21,10 +21,10 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout the latest code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 16 @@ -41,6 +41,4 @@ jobs: run: yarn build - name: Run Tests - uses: coactions/setup-xvfb@v1.0.1 - with: - run: node script/run-tests.js spec + run: xvfb-run --auto-servernum node script/run-tests.js spec diff --git a/.github/workflows/package-tests-linux.yml b/.github/workflows/package-tests-linux.yml index 844e948a64..db872336c4 100644 --- a/.github/workflows/package-tests-linux.yml +++ b/.github/workflows/package-tests-linux.yml @@ -15,10 +15,10 @@ jobs: runs-on: ubuntu-20.04 steps: - name: Checkout the latest code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 16 @@ -42,14 +42,14 @@ jobs: - name: Cache pulsar id: cache-pulsar - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: pulsar.deb key: pulsar-${{ github.sha }} - name: Cache dependencies id: cache-dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | node_modules @@ -163,15 +163,15 @@ jobs: steps: - name: Checkout the latest code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Setup NodeJS - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 16 - name: Restore dependencies from Cache id: restore-dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: | node_modules @@ -188,7 +188,7 @@ jobs: - name: Restore pulsar from Cache id: restore-pulsar - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: pulsar.deb key: pulsar-${{ github.sha }} diff --git a/.github/workflows/validate-wasm-grammar-prs.yml b/.github/workflows/validate-wasm-grammar-prs.yml index ee827ac093..7a43b0e6d2 100644 --- a/.github/workflows/validate-wasm-grammar-prs.yml +++ b/.github/workflows/validate-wasm-grammar-prs.yml @@ -13,13 +13,13 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the Latest Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 # Make sure we get all commits, so that we can compare to early commits - name: Setup Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 16 From f4622128f06b32d11337de39053da77f8d0fe141 Mon Sep 17 00:00:00 2001 From: DeeDeeG Date: Thu, 18 Apr 2024 17:37:32 -0400 Subject: [PATCH 2/3] CI: Fix editor test run on macOS (no xvfb-run on macOS) --- .github/workflows/editor-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/editor-tests.yml b/.github/workflows/editor-tests.yml index a753f88d3e..936c19aa31 100644 --- a/.github/workflows/editor-tests.yml +++ b/.github/workflows/editor-tests.yml @@ -41,4 +41,9 @@ jobs: run: yarn build - name: Run Tests + if: runner.os != 'Linux' + run: node script/run-tests.js spec + + - name: Run Tests with xvfb-run (Linux) + if: runner.os == 'Linux' run: xvfb-run --auto-servernum node script/run-tests.js spec From 419801037e183bbd71ccdbdb8a305b31080b0efe Mon Sep 17 00:00:00 2001 From: DeeDeeG Date: Thu, 18 Apr 2024 18:30:34 -0400 Subject: [PATCH 3/3] CI: Replace git-auto-commit-action with a short inline script Avoids another external dependency. --- .github/workflows/documentation.yml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index d0b7eb939a..8ffa3d8f0b 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -43,6 +43,14 @@ jobs: run: yarn run private-js-docs - name: Commit All Changes - uses: stefanzweifel/git-auto-commit-action@v5 - with: - commit_message: GH Action Documentation + run: | + if [ -n "`git status -s | grep "^ M"`" ]; then + echo "Uncommitted changes to repo files detected. Committing and pushing now." + git config user.name "${GITHUB_ACTOR}" + git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" + git add -u + git commit -m "GH Action Documentation" + git push origin HEAD + else + echo "No changes detected in repo files. Nothing to commit!" + fi