Skip to content

ci: force Node.js 24 for JavaScript actions in all workflows - #790

Merged
Ravenwater merged 2 commits into
mainfrom
ci/docs-force-node24
Apr 28, 2026
Merged

ci: force Node.js 24 for JavaScript actions in all workflows#790
Ravenwater merged 2 commits into
mainfrom
ci/docs-force-node24

Conversation

@Ravenwater

@Ravenwater Ravenwater commented Apr 28, 2026

Copy link
Copy Markdown
Contributor

Summary

Silences the Node.js 20 deprecation warning that fires on every docs build:

Node.js 20 actions are deprecated. The following actions are running on
Node.js 20 and may not work as expected:
actions/upload-artifact@ea165f8

actions/upload-pages-artifact@v4 (used by the docs workflow) pins
actions/upload-artifact at a SHA that runs on Node 20. GitHub deprecated
Node 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: true at the workflow env: level
in docs.yml. This is the migration opt-in GitHub itself recommends in the
warning text, and it's the same pattern already adopted in cmake.yml at
line 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-artifact is currently at v4 and v4 itself has the
Node 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

  • Workflow lint passes (Conventional Commits)
  • Docs build still succeeds on this PR
  • Deprecation warning gone from the build log
  • Promote to ready when satisfied: gh pr ready <NNN>

Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated CI workflow configurations to set a workflow-wide environment that forces JavaScript actions to run on Node.js 24 across multiple workflows, reducing Node.js 20 deprecation warnings and improving consistency of CI runs. No other workflow logic or public code was changed.

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>
@coderabbitai

coderabbitai Bot commented Apr 28, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

Adds a top-level environment variable FORCE_JAVASCRIPT_ACTIONS_TO_NODE24=true to multiple GitHub Actions workflows to force JavaScript actions to run on Node.js 24 and suppress Node.js 20 deprecation warnings from transitive action dependencies.

Changes

Cohort / File(s) Summary
Workflows (CI / Docs / Releases)
.github/workflows/docs.yml, .github/workflows/clang-tidy.yml, .github/workflows/conventional-commits.yml, .github/workflows/coverage.yml, .github/workflows/full-regression.yml, .github/workflows/release.yml, .github/workflows/sanitizers.yml
Added a top-level env entry: FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: "true" to force Node.js 24 for JavaScript-based actions; no other job logic changed.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

Suggested labels

enhancement

Poem

🐰 I hopped through YAML, a tiny config spree,

Pushed Node twenty-four for each action to be,
Warnings now vanish, the pipelines sing light,
A carrot of change in the CI moonlight,
Hooray for small tweaks that make everything right.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarizes the main change: adding environment variable configuration to force Node.js 24 across all workflows to address deprecation warnings.
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.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/docs-force-node24

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

@Ravenwater Ravenwater changed the title ci(docs): force Node.js 24 for JavaScript actions ci: force Node.js 24 for JavaScript actions in docs workflow Apr 28, 2026
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>
@Ravenwater Ravenwater changed the title ci: force Node.js 24 for JavaScript actions in docs workflow ci: force Node.js 24 for JavaScript actions in all workflows Apr 28, 2026
@Ravenwater Ravenwater self-assigned this Apr 28, 2026
@Ravenwater Ravenwater added the compilation compiler coverage problems label Apr 28, 2026
@Ravenwater Ravenwater moved this to In progress in Universal Number Library Apr 28, 2026
@Ravenwater Ravenwater added this to the V4 milestone Apr 28, 2026
@Ravenwater
Ravenwater marked this pull request as ready for review April 28, 2026 19:35
@coveralls

Copy link
Copy Markdown

Coverage Report for CI Build 25073575277

Warning

Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes.
Quick fix: rebase this PR. Learn more →

Warning

No base build found for commit 7c2ff41 on main.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 84.3%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 54230
Covered Lines: 45716
Line Coverage: 84.3%
Coverage Strength: 6319869.19 hits per line

💛 - Coveralls

@Ravenwater
Ravenwater merged commit 86daf13 into main Apr 28, 2026
43 checks passed
@Ravenwater
Ravenwater deleted the ci/docs-force-node24 branch April 28, 2026 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

compilation compiler coverage problems

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants