From 843e744acb2492ab6d6828275055f24114c66d4a Mon Sep 17 00:00:00 2001 From: Feng Qian Date: Tue, 11 Aug 2026 22:46:54 -0700 Subject: [PATCH] chore: move the pinned actions off Node 20 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GitHub is forcing Node-20 actions onto Node 24, which surfaces as a deprecation warning on every run: Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/upload-artifact@ea165f8d... Bumps the three pins that still shipped `runs.using: node20`: upload-artifact v4 -> v7.0.1 (043fb46d) download-artifact v4 -> v8.0.1 (3e5f45b2) setup-node v4 -> v7.0.0 (82076278) checkout was already on v6/node24 and is unchanged. Note that upload-artifact v5 does NOT fix this — v5 kept node20 as its default runtime and only had preliminary node24 support. v6 is the first release that actually runs on node24, and the same applies to download-artifact v7. upload-artifact v6+ and download-artifact v7+ require Actions Runner >= 2.327.1. The Shiplight self-hosted runners report 2.336.0, so this is safe; a consumer on older self-hosted runners would need to update them first. Two behaviour changes ride along with the majors, both wanted here: - download-artifact v8 errors on a digest mismatch rather than warning. For a pipeline that diagnoses failures from a downloaded report, failing loudly on a corrupt artifact beats silently reasoning about garbage. - Both actions moved to ESM, which is transparent to callers. Every `with:` block was checked against the new input sets; all five usages are still valid. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/triage.yml | 6 +++--- setup/action.yml | 2 +- upload-report/action.yml | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 8f5972c..33512ba 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -263,7 +263,7 @@ jobs: - name: Upload triage context if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: triage-context path: | @@ -315,7 +315,7 @@ jobs: fetch-depth: 0 - name: Download triage context - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: name: triage-context path: /tmp/triage-context @@ -664,7 +664,7 @@ jobs: - name: Upload autofix outcome if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: autofix-result-${{ steps.meta.outputs.artifact_slug || 'unknown' }}-${{ strategy.job-index }} path: /tmp/autofix-result.json diff --git a/setup/action.yml b/setup/action.yml index 572e44d..521f6d6 100644 --- a/setup/action.yml +++ b/setup/action.yml @@ -41,7 +41,7 @@ runs: *"$nl"*) echo "working-directory must not contain a newline" >&2; exit 1 ;; esac - - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 + - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 with: node-version: ${{ inputs.node-version }} diff --git a/upload-report/action.yml b/upload-report/action.yml index 7387369..77c8241 100644 --- a/upload-report/action.yml +++ b/upload-report/action.yml @@ -25,7 +25,7 @@ inputs: runs: using: composite steps: - - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: ${{ inputs.name }} path: |