Skip to content

ci: bump pinned GitHub Actions to their Node 24 majors#97

Open
EtienneLescot wants to merge 1 commit into
mainfrom
claude/bump-actions-node24
Open

ci: bump pinned GitHub Actions to their Node 24 majors#97
EtienneLescot wants to merge 1 commit into
mainfrom
claude/bump-actions-node24

Conversation

@EtienneLescot

@EtienneLescot EtienneLescot commented Jul 16, 2026

Copy link
Copy Markdown
Collaborator

Problem

Every workflow run logs:

Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4 ...

GitHub is dropping the Node 20 shim. These actions still declare using: node20 at the pinned majors in this repo, so runners are already silently forcing them onto Node 24 — this is a warning today, a hard break later.

Fix

Bump each action to the major that declares using: node24 natively (verified directly against each repo's action.yml at the release tag, not just changelog claims):

Action Before After
actions/checkout v4 v7
actions/setup-node v4 v7
actions/setup-python v5 v6
actions/cache v4 v6
actions/upload-artifact v4 v7
actions/download-artifact v4 v8

Applied across all 11 workflow/composite-action files that reference them.

Breaking changes checked

Read the release notes for every intermediate major and checked each against how this repo actually calls these actions:

  • download-artifact v5: "inconsistent path behavior for single artifact downloads by ID" — this repo downloads by name:, never artifact-id, so unaffected.
  • setup-node v5: adds automatic package-manager-cache detection from package.json#packageManager. This repo's composite action already sets cache: npm explicitly, so no behavior change.
  • Everything else in the v4→v7/v8 ranges is the Node 24 runtime bump itself, an ESM migration transparent to callers, or new opt-in parameters (e.g. upload-artifact's archive: false for direct uploads) that nothing here uses.

No other breaking change applies to this repo's usage.

Note on the diff

ci.yml was the one workflow file with CRLF line endings (an existing inconsistency, not introduced here). Restored CRLF after editing so the diff is the 4 actual version bumps, not a 130-line line-ending rewrite.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated automated build, test, packaging, release, and artifact workflows to use newer action versions.
    • Improved the reliability and maintainability of development and release automation across supported platforms.
    • Preserved existing build configurations, artifact handling, release publishing, notifications, and package update behavior.

Every workflow run was logging:

  Node.js 20 is deprecated. The following actions target Node.js 20 but
  are being forced to run on Node.js 24: actions/checkout@v4, actions/setup-node@v4 ...

GitHub Actions is dropping the Node 20 shim; these actions still declared
`using: node20` at the pinned majors, so runners were silently forcing them
onto Node 24 anyway. Bump to the majors that declare `using: node24` natively
(verified via each repo's action.yml at the release tag):

  actions/checkout        v4 -> v7
  actions/setup-node      v4 -> v7
  actions/setup-python    v5 -> v6
  actions/cache           v4 -> v6
  actions/upload-artifact v4 -> v7
  actions/download-artifact v4 -> v8

Checked every major's release notes for breaking changes against how this
repo actually uses them (by name, not artifact-id; no exotic checkout options)
- none apply. download-artifact's v5 path-behavior change only affects
by-ID downloads, which this repo doesn't use.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 16, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 67f1c299-5fb0-4c58-9719-db4fc451fa87

📥 Commits

Reviewing files that changed from the base of the PR and between d5966ed and 4b7c39b.

📒 Files selected for processing (11)
  • .github/actions/setup/action.yml
  • .github/workflows/build.yml
  • .github/workflows/bump-nix-package.yml
  • .github/workflows/ci.yml
  • .github/workflows/diagnostic-artifact.yml
  • .github/workflows/discord-pr-notify.yml
  • .github/workflows/discord-roadmap-sync.yml
  • .github/workflows/discord-weekly-leaderboard.yml
  • .github/workflows/prerelease.yml
  • .github/workflows/promote.yml
  • .github/workflows/update-homebrew-cask.yml

📝 Walkthrough

Walkthrough

Updates GitHub Actions versions across the composite setup action and CI, build, release, diagnostic, notification, and maintenance workflows while preserving existing commands, artifact handling, and publishing logic.

Changes

GitHub Actions upgrades

Layer / File(s) Summary
Setup and CI action upgrades
.github/actions/setup/action.yml, .github/workflows/ci.yml
The shared Node setup uses actions/setup-node@v7, and CI checkout steps use actions/checkout@v7.
Build and release action upgrades
.github/workflows/build.yml
Build and publishing jobs upgrade checkout, cache, Python setup, artifact upload, and artifact download actions while retaining existing artifact names and paths.
Automation and diagnostic workflow upgrades
.github/workflows/diagnostic-artifact.yml, .github/workflows/bump-nix-package.yml, .github/workflows/discord-*.yml, .github/workflows/prerelease.yml, .github/workflows/promote.yml, .github/workflows/update-homebrew-cask.yml
Maintenance, notification, release, and diagnostic workflows upgrade checkout and diagnostic artifact upload actions without changing their workflow logic.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: psychosomat

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: bumping pinned GitHub Actions to Node 24-compatible majors.
Description check ✅ Passed The description is detailed and covers the problem, fix, and compatibility notes, but it omits several template sections like Related issue and Testing.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/bump-actions-node24

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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