Skip to content

ci: bump actions off the deprecated Node 20 runtime - #397

Merged
kengio merged 1 commit into
mainfrom
ci/bump-node20-actions
Aug 28, 2026
Merged

ci: bump actions off the deprecated Node 20 runtime#397
kengio merged 1 commit into
mainfrom
ci/bump-node20-actions

Conversation

@kengio

@kengio kengio commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Why

The v3.4.25 release run (33137638534) emitted two "Node.js 20 is deprecated" annotations, on Build aarch64-pc-windows-msvc and Publish npm wrapper. Per the annotations, the offending actions are exactly ilammy/msvc-dev-cmd@v1 and actions/setup-node@v4 — nothing else.

What

actions/setup-node v4 → v7 (Publish npm wrapper). v5+ runs on node24; v7 additionally removed the dummy NODE_AUTH_TOKEN placeholder export (actions/setup-node#1558) — the very placeholder our workflow comment blames for npm 10's silent OIDC fallback — and documents npm Trusted Publishing. Breaking changes checked:

  • v5 auto-caching triggers only on a packageManager field in package.json — no file in this repo has one, so it's inert (a comment notes this at the pin).
  • node-version: '20' (the Node the job installs, unrelated to the action's runtime) and the npm@11 pin are deliberately untouched.

ilammy/msvc-dev-cmd stays at v1, now with a KNOWN ANNOTATION comment. There is no node24 release to bump to: latest tag v1.13.0 and master both declare node20; upstream tracks it in ilammy/msvc-dev-cmd#99 / #105. GitHub force-runs it on node24, where the v3.4.25 run shows it works — so the annotation on the Windows ARM64 build persists until upstream ships, and the comment says to re-pin then. Swapping to a different MSVC-env action was deliberately avoided: the amd64_arm64 cross environment took 8 documented release attempts to stabilize (see the comments in that job).

Audit scope

All pins across release.yml, ci.yml, scheduler-schema.yml were checked against each action's action.yml at the pinned ref:

Action Runtime Status
actions/setup-node@v4 node20 bumped to v7
ilammy/msvc-dev-cmd@v1 node20 no node24 release; documented
actions/checkout@v6 node24 ok
actions/upload-artifact@v7, download-artifact@v7/v8 node24 ok
Swatinem/rust-cache@v2 node24 ok
dtolnay/rust-toolchain@stable, taiki-e/install-action composite ok

Latest ci.yml run has zero annotations, matching the audit. CI-only change — no CHANGELOG entry per convention.

🤖 Generated with Claude Code

actions/setup-node v4 -> v7: v5+ targets node24; v7 also drops the dummy
NODE_AUTH_TOKEN placeholder and documents OIDC trusted publishing. The
v5 auto-caching breaking change is inert here (no packageManager field
in any package.json).

ilammy/msvc-dev-cmd stays at v1 with a KNOWN ANNOTATION comment: no
node24 release exists (latest v1.13.0 and master both declare node20;
upstream #99/#105 track it). GitHub forces it onto node24, where the
v3.4.25 release run shows it works.

Audited ci.yml and scheduler-schema.yml too: checkout@v6, rust-cache@v2,
upload/download-artifact@v7/v8 are node24; dtolnay/rust-toolchain and
taiki-e/install-action are composite. No other node20 actions.
@kengio
kengio merged commit 8cd5c47 into main Aug 28, 2026
22 checks passed
@kengio
kengio deleted the ci/bump-node20-actions branch August 28, 2026 03: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