Repository navigation
CI: move action pins off deprecated Node 20 (#1588) - #1590
Open
Mikola Lysenko (mikolalysenko) wants to merge 2 commits into
Open
Mikola Lysenko (mikolalysenko) wants to merge 2 commits into
Mikola Lysenko (mikolalysenko) wants to merge 2 commits into
Conversation
GitHub now forces actions that target Node.js 20 onto Node 24 and logs a deprecation warning on every job. When Node 20 support is removed, every PR and merge-queue leg that sets up Node or Python, or moves an artifact, would break at the same moment. Move the CI workflow and the two artifact retry composites to the first release of each action that runs on Node 24. Each new pin's only breaking change is the runtime, or an input we don't use: - setup-node v4 -> v6.4.0 (pin already used in release.yml; no root package.json, so the v5+ auto-cache never turns on) - setup-python v5 -> v6.3.0 - download-artifact v4 -> v7.0.0 (we download by pattern, not ID) - upload-artifact v4 -> v6.0.0 - setup-uv v6.8.0 -> v7.0.0 (drops only the unused server-url) release.yml and the disabled compatibility workflows are left alone. Refs #1588 Assisted-by: Claude Code:claude-opus-5-5
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
The truncated-download note named v4 as if it described the current pin. Say it was seen on v4 so nobody reads the verify-and-retry steps as a v4-only workaround and drops them. Assisted-by: Claude Code:claude-opus-5-5
Mikola Lysenko (mikolalysenko)
force-pushed
the
agent/fix-ci-node24-action-pins
branch
from
October 15, 2026 19:58
408c998 to
c38b163
Compare
Mikola Lysenko (mikolalysenko)
marked this pull request as ready for review
October 15, 2026 19:59
Collaborator
Author
|
BugBot review Generated by Claude Code |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit c38b163. Configure here.
Tanmay Singla (Tanmay182003)
approved these changes
Oct 15, 2026
Collaborator
Author
|
Ready for review — head
Generated by Claude Code |
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.
LLM Description written by Claude Code:claude-opus-5-5
Refs #1588 (partial fix: see Scope)
Problem
Every lean PR and merge-queue job that sets up Node or Python, or moves an artifact, logs "Node.js 20 is deprecated … being forced to run on Node.js 24". The forced run works today. Once GitHub drops Node 20 action support, those legs all fail at once, and
ci-okwith them.Change
Pins move to the first release of each action that runs on
node24, by full commit SHA. I checked each new pin'saction.ymlat that SHA and confirmedruns.using: node24. Taking the lowest Node 24 major means the runtime is the only breaking change we pick up:49933eav448b55a0v6.4.0package.jsonsetspackageManager. There is no rootpackage.json, so caching stays off. The same pin is already trusted in release.yml.a26af69v5ece7cb0v6.3.0d3f86a1v437930b1v7.0.0path/. Every caller here (the 3 direct steps and both composite callers) passesmerge-multiple: true, which was already flat, so the layout doesn't change.ea165f8v4b7c566av6.0.0d0cc045v6.8.0eb1897bv7.0.0server-urlinput, which we don't set (checked against the upstreamaction.ymldiff)The files are
.github/workflows/ci.ymland the composites.github/actions/{upload,download}-artifact/action.yml. After this change, every action pinned in ci.yml and the composites isnode24or composite. I checked all 20 unique pins.Scope
release.yml. Agents may not edit release/publish workflows. It still pins download-artifact, upload-artifact and setup-node v4, so CI: pinned actions still target deprecated Node.js 20 #1588 stays open for a human. The same SHAs as above work there.publish-cargo.yml. It pinsrust-lang/crates-io-auth-actionv1.0.3 (Node 20; v1.0.5c6f97d42is Node 24) and is also a publish workflow, so it's left for a human.*-compatibility.ymlworkflows. They are deliberately disabled and can't be run to validate a bump./code-review high
merge-multiple: true(see table). I didn't change the composite'smerge-multipledefault to avoid widening the PR.CI result
Lean run 38798279176 on c38b163: 36 success, 19 skipped, 0 failed.
ci-okandclippyare green. None of the 40 successful jobs I checked has a "Node.js 20 is deprecated" annotation.Runner cost
No change: 32 jobs in ci.yml, the lean PR run uses the same ~28 Linux jobs and ~8 min, and no steps were added or removed. Only the
uses:SHAs change.Validation
actionlinton ci.yml: findings identical before and after (144 lines, all YAML-anchor parse limits of this actionlint version)zizmor --offlineon ci.yml and the composites: identical before and after (59 findings, 0 medium/high)python3 -m pytest scripts/tests -q: 342 passed, 6 skippedfromJSONmatrix was touchedcfg(windows)/cfg(unix)code was touched, so no full-scope dispatch🤖 Generated with Claude Code
https://claude.ai/code/session_01Kf47xCWcRgvQuWrqr5sDGy
Generated by Claude Code