Skip to content

ci: use the latest Node.js patch release on every run - #112

Merged
kkdev92 merged 1 commit into
mainfrom
ci/node-latest-patch
Oct 22, 2026
Merged

kkdev92 merged 1 commit into
mainfrom
ci/node-latest-patch

Conversation

@kkdev92

@kkdev92 kkdev92 commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Every actions/setup-node step now takes the newest Node.js release of its major line, instead of an exact version that has to be raised by hand.

Why

The exact versions (22.23.4, 24.22.1 and 26.12.1, from #111) kept a runner from using an older release of the line from its tool cache. But an exact version stays where it is put: each Node.js release needs another pull request like #111, and until one lands, CI and the release jobs keep running the previous release, a security release included.

What changed

  • node-version is the major of its job (22.x, 24.x or 26.x in the test matrix, 26.x everywhere else), with check-latest: true, in all 8 setup-node steps (ci.yml, pages.yml and release.yml). With check-latest, setup-node resolves the newest release of the line from its versions manifest, downloads it when the cached one is older, and logs Resolved as '<version>'.
  • The major line is unchanged (22, 24 and 26 in the test matrix, 26 for the other jobs). Moving it stays a deliberate edit.
  • A new release reaches setup-node's manifest a few hours after nodejs.org publishes it; a run in between still takes the previous release.

Verification

  • Parsed each changed workflow before and after: apart from node-version and check-latest in the setup-node steps, every workflow equals main — job names, triggers, permissions and the other steps. The same check fails when a job name is changed.
  • CI on this pull request: each of the 8 setup-node steps logged Resolved as the newest release of its line on nodejs.org (22.23.4, 24.22.1 or 26.12.1) and downloaded it. The quality jobs keep their names and ran 1136 tests on each of 22, 24 and 26, as on main.
  • The steps in pages.yml and release.yml change the same way; they first run when those workflows next run.

🤖 Generated with Claude Code

The workflows named exact Node.js versions (22.23.4, 24.22.1 and
26.12.1) so that a runner with an older release of the line in its tool
cache would not be used. An exact version stays where it is put: each
Node.js release needs another change like #111 to move it, and until
then CI and the release jobs keep running the previous one.

Each actions/setup-node step now asks for the major of its job (22.x,
24.x or 26.x in the test matrix, 26.x everywhere else) with
check-latest: true. setup-node then resolves the newest release of that
line from its versions manifest, downloads it when the cached one is
older, and logs "Resolved as '<version>'". The major line is unchanged
and still moves only by an edit here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kkdev92
kkdev92 merged commit 8982cd6 into main Oct 22, 2026
10 checks passed
@kkdev92
kkdev92 deleted the ci/node-latest-patch branch October 22, 2026 02:27
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