ci: bump Node 20 actions to their Node 24 majors#179
Conversation
The v0.3.0-beta.1 release run flagged actions/checkout v4.3.1 and actions/setup-node v4.4.0 (release.yml), actions/cache v4.3.0 (ci.yml) and moonrepo/setup-rust v0 (codspeed.yml) as targeting deprecated Node 20. Bump them to v7.0.0 / v7.0.0 / v6.1.0 / v1.3.0, and give mutants.yml the same treatment (checkout v4, upload-artifact v4) before its scheduled runs start annotating too. All pins are commit SHAs with a version comment, matching ci.yml and plugin-ci.yml which were already on v7.
📝 WalkthroughWalkthroughGitHub Actions references are upgraded or pinned across CI, contributor, mutation-testing, and release workflows. The changelog records the corresponding Node.js 24 action updates and commit-SHA pinning. ChangesWorkflow action updates
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
Qodo reviews are paused for this user.Troubleshooting steps vary by plan Learn more → On a Teams plan? Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center? |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/release.yml:
- Around line 123-126: Remove the cache: npm setting from the actions/setup-node
steps in .github/workflows/release.yml at lines 123-126, 190-193, and 270-273,
covering the Linux, macOS, and Windows release jobs; leave the node-version
configuration unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 856fb178-51f7-40bb-ba92-7f564a60d6cb
📒 Files selected for processing (5)
.github/workflows/ci.yml.github/workflows/codspeed.yml.github/workflows/mutants.yml.github/workflows/release.ymlCHANGELOG.md
There was a problem hiding this comment.
cubic analysis
No issues found across 5 files
Linked issue analysis
Linked issue: MAT-138: Bump actions/checkout et setup-node vers des versions Node 24
| Status | Acceptance criteria | Notes |
|---|---|---|
| ✅ | Bump actions/checkout to Node‑24 major and pin by commit SHA in workflows (release.yml, codspeed.yml, mutants.yml). | Diff shows checkout usages updated to v7 commit SHAs in release.yml, codspeed.yml and mutants.yml. |
| ✅ | Bump actions/setup-node to Node‑24 major and pin by commit SHA where used (release.yml jobs that install Node). | Diff updates setup-node references to a v7 commit SHA with version comment in release.yml. |
| ✅ | Bump actions/cache to v6 and pin by commit SHA in ci.yml (maintain input compatibility). | ci.yml shows actions/cache updated to a v6 commit SHA; PR claims inputs are compatible and diff shows the change. |
| ✅ | Bump actions/upload-artifact to v7 and pin by commit SHA where used (mutants.yml). | mutants.yml shows upload-artifact updated to a v7 commit SHA. |
| ✅ | Bump moonrepo/setup-rust to v1.x and pin by commit SHA (codspeed.yml). | codspeed.yml shows moonrepo/setup-rust updated to v1.3.0 commit SHA. |
| ✅ | All updated actions are pinned by commit SHA and include a version comment. | Updated lines include commit SHAs and version comments consistent with the repo's convention. |
| CI run on this PR and a release run must show zero 'Node.js 20 is deprecated' annotations (acceptance). | This is a runtime verification step not observable in the diff; the PR author asserts they updated the relevant workflows but the absence of deprecation annotations requires running CI/release and inspecting annotations. |
actions/labeler v6.2.0, actions/first-interaction v3.1.0 and actions/stale v10.4.0, SHA-pinned like the rest. labeler@v5 was the last action still annotating PR runs with the Node 20 deprecation. first-interaction v3 renamed its inputs to snake_case (repo_token, pr_message, issue_message), so those move too.
Bumps every action still targeting Node 20, per the deprecation annotations on the v0.3.0-beta.1 release run (29684865604) and on this PR's first CI pass:
actions/checkoutv4.3.1 → v7.0.0 (release.yml, mutants.yml, codspeed.yml)actions/setup-nodev4.4.0 → v7.0.0 (release.yml)actions/cachev4.3.0 → v6.1.0 (ci.yml)moonrepo/setup-rustv0 → v1.3.0 (codspeed.yml)actions/upload-artifactv4 → v7.0.1 (mutants.yml — same Node 20 runtime, would annotate scheduled runs)actions/labelerv5 → v6.2.0,actions/first-interactionv1 → v3.1.0,actions/stalev9 → v10.4.0 (contributor.yml — labeler was still annotating PR runs)All pinned by commit SHA + version comment, same convention as ci.yml/plugin-ci.yml which were already on v7.0.0. SHAs resolved from the upstream release tags via the GitHub API.
Input compatibility checked against each major's release notes: cache v6 keeps
path/key; setup-rust v1.3.0 keepschannel/cache-target/bins; labeler v6 and stale v10 are Node-24-only bumps. first-interaction v3 renamed its inputs to snake_case —repo_token/pr_message/issue_messageupdated accordingly.The reusable-workflow pin
plugin-ci.yml@f63e53f8in plugin-release.yml already points at a checkout v7 snapshot — untouched.Verification: first CI pass on this PR was green with a single remaining Node 20 annotation (labeler), fixed since. contributor.yml only fires on issue/PR
openedand the weekly cron, so the labeler/first-interaction bump proves out on the next opened PR; the release path gets confirmed on the next tag.Fixes MAT-138
Summary by CodeRabbit