ci: move actions onto the node24 runtime and refresh the test matrix - #76
Merged
Merged
Conversation
Every job was emitting "Node.js 20 is deprecated" because actions/checkout@v4 and actions/setup-node@v4 declare `runs.using: node20`. That runtime is the Node that GitHub uses to execute the action's own bundled JS, and it is independent of the `node-version` we install, so the warning can only be cleared by bumping the action major. v5 declares node24. Held at v5 rather than the latest major on purpose: setup-node v6 changes automatic cache detection and v7 migrates to ESM and drops its dummy NODE_AUTH_TOKEN export. Nothing here relies on those, but publish.yaml only runs on push to master, so it is not exercised by pull-request CI — the smallest change that fixes the problem is the right risk for an unvalidated release path. Test matrix drops Node 21 (EOL June 2024, never LTS) and adds 22 and 24 in place of the pinned 22.5.1. Node 18 stays: it is EOL upstream but dropping it would signal the SDK no longer supports it, which is a separate decision. Build and tests verified locally on 18, 22 and 24. The pinned Node 18 in lint/pre-release/publish is left alone.
mariavlasov
approved these changes
Aug 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Clears the
Node.js 20 is deprecatedwarning that every job on every PR is currently emitting, and refreshes the test matrix.The warning
actions/checkout@v4andactions/setup-node@v4declareruns.using: node20in their ownaction.yml. That runtime is the Node that GitHub uses to execute the action's bundled JavaScript — it has nothing to do with thenode-versionwe ask setup-node to install. Changing the matrix would not have silenced it; only bumping the action major does.v5declaresnode24.wow-actions/use-app-token@v2inpublish.yamlalready runs on node24, so it needed no change.Why v5 and not the latest major
setup-node is on v7 and checkout on v7, but v5 is the first major that fixes this and the changes above it carry risk we gain nothing from:
NODE_AUTH_TOKENexportNothing here depends on either — we write
.npmrcby hand and never passregistry-url— butpublish.yamlonly runs on push tomaster, so it is not exercised by pull-request CI. For an unvalidated release path the smallest sufficient change is the better trade. Moving to v7 later is a fine follow-up, ideally verified against a release.Test matrix
[18, 20, 21, 22.5.1]→[18, 20, 22, 24]Verified locally before pushing:
yarn buildandyarn testpass on Node 18.20.8, 22.21.1 and 24.11.1 (171/171 each).Deliberately not changed
_lint.yaml,_pre-release.yamlandpublish.yaml. Those are toolchain versions for running eslint and semantic-release, not a support signal, and they work today.cache: 'npm'while the repo installs with yarn. setup-node acceptsyarn.lockas the hash source so it does not fail, but it caches~/.npm, which is empty because installs go through yarn — the CI logs showCache Size: ~0 MB (653 B). Switching it tocache: 'yarn'would make caching actually do something, but it is a behaviour change unrelated to this warning and belongs in its own PR.