From a6c43b80325bf3b17817db10dba7d3bc1d238ec5 Mon Sep 17 00:00:00 2001 From: Metbcy Date: Thu, 30 Apr 2026 14:45:15 -0700 Subject: [PATCH] chore(ci): opt every workflow into the Node.js 24 runner Adds FORCE_JAVASCRIPT_ACTIONS_TO_NODE24='true' to the top-level env block of all five workflows. Silences the runner-level warning that was firing on every actions/checkout, upload-artifact, and sticky- pull-request-comment step: Node.js 20 actions are deprecated. The following actions are running on Node.js 20 and may not work as expected: actions/checkout@v4. Actions will be forced to run with Node.js 24 by default starting June 2nd, 2026... Per GitHub's deprecation note this is the recommended early-opt-in path; it covers every JavaScript-based action in the workflow at once (1st-party AND 3rd-party) without needing per-action major- version bumps. The forced-default lands 2026-06-02 anyway and Node.js 20 is removed entirely 2026-09-16, so this is a temporary shim with a known sunset date. All five workflow YAMLs validated with PyYAML; `jobs:` keys preserved and parsed correctly. The CHANGELOG `[Unreleased]` section gets a Changed entry noting the env var and its sunset date. https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .github/workflows/ci.yml | 7 +++++++ .github/workflows/docs.yml | 7 +++++++ .github/workflows/fuzz.yml | 7 +++++++ .github/workflows/release.yml | 5 +++++ .github/workflows/sbom-diff.yml | 7 +++++++ CHANGELOG.md | 12 ++++++++++++ 6 files changed, 45 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 99ba1f0..692d840 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,13 @@ permissions: env: CARGO_TERM_COLOR: always RUSTFLAGS: -D warnings + # Opt every JavaScript-based action in this workflow into the Node.js 24 + # runner ahead of GitHub's 2026-06-02 forced-default. Silences the + # "Node.js 20 actions are deprecated" warning the runner emits on every + # checkout / upload-artifact / sticky-pull-request-comment step. Remove + # once Node.js 24 is the default runtime. + # https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' jobs: fmt: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index c8b7e42..488fb6e 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -14,6 +14,13 @@ permissions: pages: write id-token: write +env: + # Opt every JavaScript-based action in this workflow into the Node.js 24 + # runner ahead of GitHub's 2026-06-02 forced-default. See ci.yml for the + # full rationale. + # https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' + # Allow only one concurrent deployment, skipping in-flight runs but always # letting the most recent push reach production. Manually-dispatched runs # fall outside the cancel-in-progress to support targeted re-deploys. diff --git a/.github/workflows/fuzz.yml b/.github/workflows/fuzz.yml index 693719e..1ea4710 100644 --- a/.github/workflows/fuzz.yml +++ b/.github/workflows/fuzz.yml @@ -17,6 +17,13 @@ on: permissions: contents: read +env: + # Opt every JavaScript-based action in this workflow into the Node.js 24 + # runner ahead of GitHub's 2026-06-02 forced-default. See ci.yml for the + # full rationale. + # https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' + jobs: fuzz: runs-on: ubuntu-latest diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0c7a642..f2d498d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -34,6 +34,11 @@ env: CARGO_TERM_COLOR: always CARGO_INCREMENTAL: 0 RUST_BACKTRACE: 1 + # Opt every JavaScript-based action in this workflow into the Node.js 24 + # runner ahead of GitHub's 2026-06-02 forced-default. See ci.yml for the + # full rationale. + # https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' jobs: preflight: diff --git a/.github/workflows/sbom-diff.yml b/.github/workflows/sbom-diff.yml index 1f392a0..573c143 100644 --- a/.github/workflows/sbom-diff.yml +++ b/.github/workflows/sbom-diff.yml @@ -25,6 +25,13 @@ permissions: contents: read pull-requests: write # to upsert the diff comment +env: + # Opt every JavaScript-based action in this workflow into the Node.js 24 + # runner ahead of GitHub's 2026-06-02 forced-default. See ci.yml for the + # full rationale. + # https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/ + FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true' + concurrency: group: sbom-diff-${{ github.event.pull_request.number }} cancel-in-progress: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a98e58..7e0e9ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Changed + +- **Workflows opt into the Node.js 24 runner ahead of GitHub's + 2026-06-02 forced-default.** Every workflow now sets + `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'` at the top-level + `env:` block, silencing the runner's "Node.js 20 actions are + deprecated" warning that was firing on every `actions/checkout`, + `upload-artifact`, and sticky-pull-request-comment step. Covers + `ci.yml`, `docs.yml`, `fuzz.yml`, `release.yml`, and + `sbom-diff.yml`. Remove the env var once Node.js 24 is the default + runtime (after 2026-09-16 per GitHub's deprecation timeline). + ### Fixed - **Coverage-report PR comment no longer autolinks to a fake parked