Skip to content

ci: move actions to majors that run on Node 24 - #55

Merged
tristanheilman merged 2 commits into
mainfrom
ci/41-action-majors
Oct 9, 2026
Merged

tristanheilman merged 2 commits into
mainfrom
ci/41-action-majors

Conversation

@tristanheilman

Copy link
Copy Markdown
Owner

Closes #41.

GitHub has been forcing the v4 action pins onto Node 24, with a Node.js 20 is deprecated warning in all five CI jobs and in the release-please job. That meant the pinned version no longer described what actually ran, and the shim's eventual withdrawal would turn into a red check on whichever PR happened to be open.

Action From To
actions/checkout v4 v7
actions/setup-node v4 v7
actions/cache (+ /restore, /save) v4 v6
actions/setup-java v4 v6
googleapis/release-please-action v4 v5
maxim-lobanov/setup-xcode v1 unchanged, v1 already targets node24

Release notes for each major were checked against how this repo uses them:

  • setup-node v5/v6 auto-cache only applies to npm projects. This one is yarn@3.6.4, so nothing new turns on.
  • setup-node v7 stopped exporting a placeholder NODE_AUTH_TOKEN. The publish step sets NODE_AUTH_TOKEN itself, so the .npmrc it writes still resolves.
  • checkout v7 refuses fork checkouts under pull_request_target/workflow_run. This repo uses pull_request.
  • cache v5/v6 and setup-java v6 are runtime and ESM migrations, with no input or key changes.

.nvmrc (v20.19.0) is deliberately untouched. It's the Node that builds lib/ and runs npm publish, so changing it is a separate decision (see the plan).

Verification: this PR's CI must show zero Node.js 20 is deprecated lines. release.yml only runs on main, so release-please@v5 gets verified on the push after merge (the Release PR should update), and the publish path on the next release.

GitHub has been forcing the v4 pins onto Node 24 with a deprecation
warning in every job, so the pinned version no longer described what ran,
and CI would break on whatever PR was open when the shim is withdrawn.
setup-xcode@v1 already targets node24 and stays. .nvmrc is untouched: it
sets the Node that builds lib/ and publishes, which is a separate change.

Closes #41
@tristanheilman
tristanheilman merged commit 25ce543 into main Oct 9, 2026
5 checks passed
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.

chore(ci): move actions off the deprecated Node 20 runtime

1 participant