Skip to content

chore(ci): opt every workflow into the Node.js 24 runner#39

Merged
Metbcy merged 1 commit intomainfrom
chore/node24-opt-in
Apr 30, 2026
Merged

chore(ci): opt every workflow into the Node.js 24 runner#39
Metbcy merged 1 commit intomainfrom
chore/node24-opt-in

Conversation

@Metbcy
Copy link
Copy Markdown
Owner

@Metbcy Metbcy commented Apr 30, 2026

Summary

Opts every workflow into the Node.js 24 runner ahead of GitHub's 2026-06-02 forced-default. Silences the runner-level warning that's been firing on every actions/checkout, upload-artifact, and sticky-pull-request-comment step in v0.9.8's CI.

Why this approach

GitHub's deprecation note explicitly recommends FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 as the early-opt-in path. It covers every JavaScript-based action in the workflow at once — both actions/* (checkout, upload-artifact, download-artifact, upload-pages-artifact, deploy-pages) and 3rd-party (rustsec/audit-check, EmbarkStudios/cargo-deny-action, sigstore/cosign-installer, marocchino/sticky-pull-request-comment, softprops/action-gh-release, Swatinem/rust-cache) — without per-action major-version bumps and the migration risk those bring.

The forced-default lands 2026-06-02 and Node.js 20 is removed entirely 2026-09-16, so this is a temporary shim with a known sunset date. The CHANGELOG entry calls that out.

Files

File Change
.github/workflows/ci.yml Append env var to existing env: block
.github/workflows/docs.yml Add new env: block (no existing one)
.github/workflows/fuzz.yml Add new env: block (no existing one)
.github/workflows/release.yml Append env var to existing env: block
.github/workflows/sbom-diff.yml Add new env: block (no existing one)
CHANGELOG.md New [Unreleased] Changed entry

Validation

All five workflow YAMLs parse clean under PyYAML (yaml.safe_load); jobs: and env: keys preserved correctly.

This PR's own CI run is the dogfood — once it lands, the deprecation warning should be absent from the run logs.

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-actions
Copy link
Copy Markdown

SBOM diff

No dependency changes.

@github-actions
Copy link
Copy Markdown

Coverage report

Line coverage: 85.7% (9157 / 10679 lines)

Full lcov report available as workflow artifact coverage-lcov: download from this run.

v0.9.8 introduces this report; --fail-under-lines will be added once coverage is visible across 2–3 releases.

@Metbcy Metbcy merged commit 8b5c5cc into main Apr 30, 2026
13 checks passed
@Metbcy Metbcy deleted the chore/node24-opt-in branch April 30, 2026 21:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant