ci: force Node.js 24 for JavaScript actions in all workflows - #790
Conversation
actions/upload-pages-artifact@v4 in docs.yml internally pins actions/upload-artifact at a SHA that runs on Node.js 20, which GitHub deprecated 2025-09-19. The deprecation warning fires every time the docs build runs. Add FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true at the workflow env level -- the same fix already adopted in cmake.yml. This is the opt-in for the new default that GitHub will apply automatically on 2026-06-02; no behavior change beyond silencing the warning. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughAdds a top-level environment variable Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Possibly related PRs
Suggested labels
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
Same fix as the previous commit, applied to every workflow that
uses external GitHub Actions:
- clang-tidy.yml (existing env block, just add the var)
- conventional-commits.yml (was firing the warning on
amannn/action-semantic-pull-request@v5)
- coverage.yml
- full-regression.yml
- release.yml
- sanitizers.yml
After this, all 8 workflows in .github/workflows/ have the env var,
matching the pattern already established by cmake.yml and docs.yml.
The conventional-commits warning that motivated this expansion:
Node.js 20 actions are deprecated. The following actions are running
on Node.js 20 and may not work as expected:
amannn/action-semantic-pull-request@v5
is gone after this change.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Coverage Report for CI Build 25073575277Warning Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes. Warning No base build found for commit Coverage: 84.3%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsRequires a base build to compare against. How to fix this → Coverage Stats
💛 - Coveralls |
Summary
Silences the Node.js 20 deprecation warning that fires on every docs build:
actions/upload-pages-artifact@v4(used by the docs workflow) pinsactions/upload-artifactat a SHA that runs on Node 20. GitHub deprecatedNode 20 on 2025-09-19, will switch the default to Node 24 on 2026-06-02, and
will remove Node 20 from the runner on 2026-09-16.
Fix
Add
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: trueat the workflowenv:levelin
docs.yml. This is the migration opt-in GitHub itself recommends in thewarning text, and it's the same pattern already adopted in
cmake.ymlatline 37. No behavior change beyond silencing the warning -- the JS actions
just run on Node 24 instead of Node 20.
Why this approach (vs bumping the action)
actions/upload-pages-artifactis currently at v4 and v4 itself has theNode 20 internal dep. Bumping wouldn't help until upstream releases a v5;
the env-var migration works regardless of upstream release timing and is
forward-compatible (same setting that becomes default on 2026-06-02).
Test plan
gh pr ready <NNN>Generated with Claude Code
Summary by CodeRabbit