Skip to content

[CI] Read the Node version from .nvmrc - #4542

Merged
j-piasecki merged 1 commit into
mainfrom
push-smplvkruywuk
Sep 28, 2026
Merged

j-piasecki merged 1 commit into
mainfrom
push-smplvkruywuk

Conversation

@j-piasecki

Copy link
Copy Markdown
Member

Description

Every workflow hardcoded its own node-version, so the version lived in 14 places and drifted. macos-build was still on 22 because #3753 bumped only the setup-node action version in that file, and yarn-validation had no pin at all and ran whatever Node the runner happens to ship. Both cases were invisible until you grepped for them.

All 14 workflows that set up Node now read node-version-file: '.nvmrc', which holds 24.19, so bumping Node is a one-line change.

Test plan

Checks should pass

Copilot AI lite review requested due to automatic review settings September 25, 2026 10:28
@coderabbitai

coderabbitai Bot commented Sep 25, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Advanced

Run ID: 7e331f27-c1ad-407b-8b13-99401dbb0889

📥 Commits

Reviewing files that changed from the base of the PR and between e26231e and 0accfd6.

📒 Files selected for processing (19)
  • .github/workflows/android-basic.yml
  • .github/workflows/android-build.yml
  • .github/workflows/android-e2e.yml
  • .github/workflows/android.yml
  • .github/workflows/docs-check.yml
  • .github/workflows/ios-basic.yml
  • .github/workflows/ios-build.yml
  • .github/workflows/ios-e2e.yml
  • .github/workflows/ios-spm-build-test.yml
  • .github/workflows/ios.yml
  • .github/workflows/kotlin-lint.yml
  • .github/workflows/macos-build.yml
  • .github/workflows/publish-release.yml
  • .github/workflows/rngh-api-v3.yml
  • .github/workflows/run-jest-tests.yml
  • .github/workflows/static-example-apps-checks.yml
  • .github/workflows/static-root-checks.yml
  • .github/workflows/yarn-validation.yml
  • .nvmrc

Included review availability: Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Summary

Summary by CodeRabbit

  • Chores
    • Updated the project’s Node.js version to 24.19 and aligned automated build, test, and release checks to use it.
    • Changes to the Node.js version now trigger the relevant automated checks.

Walkthrough

The CI workflows now read the Node.js version from .nvmrc, which specifies version 24.19. Workflow path filters also include .nvmrc where specified.

Changes

CI Node.js version and triggers

Layer / File(s) Summary
Declare and use the Node.js version
.nvmrc, .github/workflows/*
.nvmrc specifies Node.js 24.19. Workflow setup steps use that file instead of fixed Node.js versions.
Trigger workflows on version-file changes
.github/workflows/*
Pull-request path filters include .nvmrc. The Yarn validation workflow also includes it in push path filters.

Suggested reviewers: m-bert

Priority: ⬇️ Low

Merge Risk: ⚪ Minimal · up to 0accf

The workflows consistently use Node 24.19 from .nvmrc, and the affected checks are triggered when that file changes. No material merge risk remains.

Architecture Summary

Architecture risk: 🔵 Low · up to 0accf

The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.

Changed systems: None identified.

Architecture concerns
No architecture-level concerns identified.

Review details

Before / after behavior

  • observed — Modified behavior in .github/workflows/android-basic.yml: Adds .nvmrc to the paths that trigger the workflow on pull requests.
  • observed — Modified behavior in .github/workflows/android-build.yml: The Node.js setup step replaces the explicit version 24 with node-version-file: '.nvmrc'; the setup action and Yarn cache setting remain unchanged.
  • observed — Modified behavior in .github/workflows/android-e2e.yml: The Node.js setup step now reads its version from .nvmrc instead of specifying version 24 directly.
  • observed — Modified behavior in .github/workflows/android.yml: Added .nvmrc to the pull-request path filters that trigger the workflow.
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: workflows now read the Node.js version from .nvmrc.
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.

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

Several workflow path filters omit .nvmrc, allowing Node-version-only changes to bypass affected CI checks.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 1 Medium severity

Open (1)
What changed in this PR

Centralizes the CI Node.js version in .nvmrc and updates 14 workflows to use it.

Changes:

  • Adds Node.js 24.19 to .nvmrc.
  • Replaces hardcoded or missing workflow versions with node-version-file.
  • Adds Node setup to yarn-validation.
File Review
.nvmrc Defines the shared Node.js version; path filters should include it.
.github/​workflows/​yarn-validation.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​static-root-checks.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​static-example-apps-checks.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​run-jest-tests.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​rngh-api-v3.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​publish-release.yml Reads .nvmrc.
.github/​workflows/​macos-build.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​kotlin-lint.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​ios-spm-build-test.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​ios-e2e.yml Reads .nvmrc.
.github/​workflows/​ios-build.yml Reads .nvmrc.
.github/​workflows/​docs-check.yml Reads .nvmrc; trigger paths should include it.
.github/​workflows/​android-e2e.yml Reads .nvmrc.
.github/​workflows/​android-build.yml Reads .nvmrc.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .nvmrc
## Description

Every workflow hardcoded its own `node-version`, so the version lived in 14 places and drifted. `macos-build` was still on 22 because #3753 bumped only the `setup-node` action version in that file, and `yarn-validation` had no pin at all and ran whatever Node the runner happens to ship. Both cases were invisible until you grepped for them.

All 14 workflows that set up Node now read `node-version-file: '.nvmrc'`, which holds `24.19`, so bumping Node is a one-line change.

## Test plan

Checks should pass
@j-piasecki
j-piasecki marked this pull request as ready for review September 25, 2026 10:35
@j-piasecki
j-piasecki requested a review from m-bert September 28, 2026 07:40

@m-bert m-bert left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason behind keeping it at 24?

@j-piasecki

Copy link
Copy Markdown
Member Author

Is there a reason behind keeping it at 24?

Not really; I just took what was already set and moved it to a single source of truth

@j-piasecki
j-piasecki merged commit 83fc6b1 into main Sep 28, 2026
19 checks passed
@j-piasecki
j-piasecki deleted the push-smplvkruywuk branch September 28, 2026 07:54
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.

3 participants