From 4b7c39b40b89fde72f127e640fb77296f0baa35c Mon Sep 17 00:00:00 2001 From: Etienne Lescot Date: Thu, 16 Jul 2026 17:57:49 +0200 Subject: [PATCH] ci: bump pinned GitHub Actions to their Node 24 majors Every workflow run was logging: Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4 ... GitHub Actions is dropping the Node 20 shim; these actions still declared `using: node20` at the pinned majors, so runners were silently forcing them onto Node 24 anyway. Bump to the majors that declare `using: node24` natively (verified via each repo's action.yml at the release tag): actions/checkout v4 -> v7 actions/setup-node v4 -> v7 actions/setup-python v5 -> v6 actions/cache v4 -> v6 actions/upload-artifact v4 -> v7 actions/download-artifact v4 -> v8 Checked every major's release notes for breaking changes against how this repo actually uses them (by name, not artifact-id; no exotic checkout options) - none apply. download-artifact's v5 path-behavior change only affects by-ID downloads, which this repo doesn't use. Co-Authored-By: Claude Sonnet 5 --- .github/actions/setup/action.yml | 2 +- .github/workflows/build.yml | 30 +++++++++---------- .github/workflows/bump-nix-package.yml | 2 +- .github/workflows/ci.yml | 8 ++--- .github/workflows/diagnostic-artifact.yml | 8 ++--- .github/workflows/discord-pr-notify.yml | 2 +- .github/workflows/discord-roadmap-sync.yml | 2 +- .../workflows/discord-weekly-leaderboard.yml | 2 +- .github/workflows/prerelease.yml | 2 +- .github/workflows/promote.yml | 2 +- .github/workflows/update-homebrew-cask.yml | 2 +- 11 files changed, 31 insertions(+), 31 deletions(-) diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index d42bbd660..c5dbd8c6f 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -3,7 +3,7 @@ description: Install Node 22, restore npm cache, run npm ci runs: using: composite steps: - - uses: actions/setup-node@v4 + - uses: actions/setup-node@v7 with: node-version: 22 cache: npm diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6487cbb17..b4e67daae 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,13 +33,13 @@ jobs: runs-on: windows-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Setup Node.js uses: ./.github/actions/setup - name: Cache caption assets - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: caption-assets key: caption-assets-${{ runner.os }}-${{ hashFiles('scripts/fetch-caption-model.mjs') }} @@ -48,7 +48,7 @@ jobs: run: npm run build:win -- --publish never - name: Upload Windows installer - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: openscreen-windows path: release/**/Openscreen.Setup.*.exe @@ -64,13 +64,13 @@ jobs: arch: ${{ fromJSON((github.event_name == 'workflow_dispatch' && github.event.inputs.arch != 'both') && format('["{0}"]', github.event.inputs.arch) || '["arm64", "x64"]') }} steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Setup Node.js uses: ./.github/actions/setup - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.11" @@ -80,7 +80,7 @@ jobs: npm_config_build_from_source: "false" - name: Cache caption assets - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: caption-assets key: caption-assets-${{ runner.os }}-${{ hashFiles('scripts/fetch-caption-model.mjs') }} @@ -218,7 +218,7 @@ jobs: spctl -a -vv -t install "${{ steps.dmg.outputs.dmg_path }}" - name: Upload macOS DMG - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: openscreen-mac-${{ matrix.arch }} path: ${{ steps.dmg.outputs.dmg_path }} @@ -234,7 +234,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Setup Node.js uses: ./.github/actions/setup @@ -243,7 +243,7 @@ jobs: run: sudo apt-get update && sudo apt-get install -y libarchive-tools - name: Cache caption assets - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: caption-assets key: caption-assets-${{ runner.os }}-${{ hashFiles('scripts/fetch-caption-model.mjs') }} @@ -252,7 +252,7 @@ jobs: run: npm run build:linux -- --publish never - name: Upload Linux packages - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: openscreen-linux path: | @@ -273,7 +273,7 @@ jobs: if: ${{ (github.event_name == 'push' && github.ref_type == 'tag') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_tag != '') }} steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Resolve release tag id: release @@ -331,27 +331,27 @@ jobs: echo "notes_start_tag=$NOTES_START_TAG" >> "$GITHUB_OUTPUT" - name: Download Windows installer - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: openscreen-windows path: artifacts/windows - name: Download macOS arm64 DMG continue-on-error: true - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: openscreen-mac-arm64 path: artifacts/mac-arm64 - name: Download macOS x64 DMG continue-on-error: true - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: openscreen-mac-x64 path: artifacts/mac-x64 - name: Download Linux packages - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: openscreen-linux path: artifacts/linux diff --git a/.github/workflows/bump-nix-package.yml b/.github/workflows/bump-nix-package.yml index 57e48e51a..a5176e47b 100644 --- a/.github/workflows/bump-nix-package.yml +++ b/.github/workflows/bump-nix-package.yml @@ -38,7 +38,7 @@ jobs: echo "branch=$BRANCH" >> "$GITHUB_OUTPUT" - name: Checkout main - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: ref: main fetch-depth: 0 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3c65e41b6..a733a3110 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: name: Lint runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: ./.github/actions/setup - run: npm run lint @@ -19,7 +19,7 @@ jobs: name: Type Check runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: ./.github/actions/setup - run: npx tsc --noEmit @@ -27,7 +27,7 @@ jobs: name: Test runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: ./.github/actions/setup - run: npm run test - run: npm run test:browser:install @@ -37,7 +37,7 @@ jobs: name: Build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: ./.github/actions/setup - run: npx vite build diff --git a/.github/workflows/diagnostic-artifact.yml b/.github/workflows/diagnostic-artifact.yml index bdf9bde9d..154e30993 100644 --- a/.github/workflows/diagnostic-artifact.yml +++ b/.github/workflows/diagnostic-artifact.yml @@ -15,7 +15,7 @@ jobs: name: Windows x64 diagnostic bundle runs-on: windows-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: ./.github/actions/setup @@ -58,7 +58,7 @@ jobs: if ($LASTEXITCODE -ne 0) { throw "diagnostic.bat --help exited $LASTEXITCODE" } - name: Upload Windows diagnostic bundle - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: openscreen-diagnostic-windows-x64 path: openscreen-diagnostic-windows-x64.zip @@ -73,7 +73,7 @@ jobs: matrix: arch: [arm64, x64] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - uses: ./.github/actions/setup @@ -98,7 +98,7 @@ jobs: tar -czf "$bundle.tar.gz" "$bundle" - name: Upload macOS diagnostic bundle - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: openscreen-diagnostic-macos-${{ matrix.arch }} path: openscreen-diagnostic-macos-${{ matrix.arch }}.tar.gz diff --git a/.github/workflows/discord-pr-notify.yml b/.github/workflows/discord-pr-notify.yml index 20ed1c47c..7e2aacc9f 100644 --- a/.github/workflows/discord-pr-notify.yml +++ b/.github/workflows/discord-pr-notify.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Setup Node.js uses: ./.github/actions/setup diff --git a/.github/workflows/discord-roadmap-sync.yml b/.github/workflows/discord-roadmap-sync.yml index bbada3e0e..1e44aca30 100644 --- a/.github/workflows/discord-roadmap-sync.yml +++ b/.github/workflows/discord-roadmap-sync.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Setup Node.js uses: ./.github/actions/setup diff --git a/.github/workflows/discord-weekly-leaderboard.yml b/.github/workflows/discord-weekly-leaderboard.yml index 9724e36de..a32b77c9e 100644 --- a/.github/workflows/discord-weekly-leaderboard.yml +++ b/.github/workflows/discord-weekly-leaderboard.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Setup Node.js uses: ./.github/actions/setup diff --git a/.github/workflows/prerelease.yml b/.github/workflows/prerelease.yml index 85b0f63af..6e8b9db1f 100644 --- a/.github/workflows/prerelease.yml +++ b/.github/workflows/prerelease.yml @@ -34,7 +34,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/promote.yml b/.github/workflows/promote.yml index 3e8214b9c..f73fabd50 100644 --- a/.github/workflows/promote.yml +++ b/.github/workflows/promote.yml @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: fetch-depth: 0 diff --git a/.github/workflows/update-homebrew-cask.yml b/.github/workflows/update-homebrew-cask.yml index 60661a3bb..c23895887 100644 --- a/.github/workflows/update-homebrew-cask.yml +++ b/.github/workflows/update-homebrew-cask.yml @@ -118,7 +118,7 @@ jobs: echo "x64_sha=$X64_SHA" >> "$GITHUB_OUTPUT" - name: Checkout tap - uses: actions/checkout@v4 + uses: actions/checkout@v7 with: repository: ${{ env.TAP_OWNER }}/${{ env.TAP_REPO }} token: ${{ secrets.HOMEBREW_TAP_TOKEN }}