Skip to content

ci: Move CI off end-of-life Node versions to Node 22 - #6927

Merged
antonis merged 1 commit into
mainfrom
ci/bump-eol-node
Oct 22, 2026
Merged

antonis merged 1 commit into
mainfrom
ci/bump-eol-node

Conversation

@antonis

@antonis antonis commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

📢 Type of change

  • Bugfix
  • New feature
  • Enhancement
  • Refactoring

📜 Description

Moves every CI job and the root Volta pin off end-of-life Node versions, onto Node 22 (supported until April 2027).

Where Before After
buildandtest.yml (9 jobs, including the tarball check) 18 22
codegen.yml, native-tests.yml 18 22
release.yml, sample-application-expo.yml (3 jobs), ios-crash-screenshot-no-freeze.yml 20 22
e2e-v2.yml, RN 0.71 build (was 0.71 ? 20 : 22) 20 22
Root package.json Volta node 18.20.8, yarn 3.6.4 node 22.22.2, yarn 4.17.0

After this, every node-version in .github/workflows/ is 22. The Volta Node version matches the samples/react-native pin, and the Volta yarn version matches packageManager.

💡 Motivation and Context

  • Node 18 reached end of life in April 2025 and Node 20 in April 2026.
  • The repo's own react-native@0.88.0 dev dependency declares engines.node: ^22.13.0 || ^24.3.0 || >=26. The Node 18 jobs only worked because yarn doesn't enforce engines.
  • The RN 0.71 E2E build stayed on Node 20 in chore(e2e): Bump E2E tests to React Native 0.87.0 #6616 as a precaution ("untested Node"), not because of a known failure.
  • These jobs run our own tooling, not customer build-time code, so pinning them to an old Node gave little real coverage of customers on older Node.

💚 How did you test it?

This changes CI only, so CI on this PR is the test. Needs the ready-to-merge label for E2E, native and sample jobs. In particular, watch the RN 0.71 E2E build on Node 22.

📝 Checklist

  • I added tests to verify changes.
  • No new PII added or SDK only sends newly added PII if sendDefaultPII is enabled.
  • I updated the docs if needed.
  • I updated the wizard if needed.
  • All tests passing.
  • Public API changes reviewed by another Mobile SDK team member or implemented according to the develop docs spec.
  • No breaking changes.

🔮 Next steps

Node 18 (EOL April 2025) and Node 20 (EOL April 2026) are replaced with
Node 22 across all workflows and the root Volta pin. The repo's own
react-native 0.88 dev dependency requires Node ^22.13.0, so the Node 18
jobs were running an unsupported combination. The Volta yarn pin is
aligned with packageManager (yarn 4.17.0).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Semver Impact of This PR

⚪ None (no version bump detected)

📋 Changelog Preview

This is how your changes will appear in the changelog.
Entries from this PR are highlighted with a left border (blockquote style).


  • ci: Move CI off end-of-life Node versions to Node 22 by antonis in #6927
  • refactor(ios): Use internal Cocoa serialization by philprime in #6917
  • chore(deps): update CLI to v3.8.1 by github-actions in #6924
  • chore(deps): update Cocoa SDK to v9.31.0 by github-actions in #6925
  • fix(tracing): Respect enableHTTPTimings and stop leaking HTTP timing listeners by antonis in #6912
  • fix(core): Stop wrapping RNSentry in TurboModuleContext by default by alwx in #6921
  • chore(deps): bump launch-editor from 2.14.1 to 2.14.2 by dependabot in #6922
  • ci: Fix Linux jobs on Ubuntu 26.04 runners by antonis in #6920
  • fix(core): Match Sentry package paths with Windows separators in Metro resolvers by alwx in #6915
  • chore(e2e): Update Expo sample to SDK 58 by antonis in #6914
  • chore(e2e): Bump E2E tests to React Native 0.88.0 by antonis in #6899
  • fix(ios): Find .xcode.env in the debug symbols phase under SwiftPM by alwx in #6911
  • chore(deps): update React Native to v0.88.0 by github-actions in #6903
  • chore(deps): bump getsentry/craft from 2.34.1 to 2.35.0 by dependabot in #6906
  • chore(deps): bump actions/create-github-app-token from 3.2.0 to 3.3.0 by dependabot in #6908
  • chore(deps): bump getsentry/craft/.github/workflows/changelog-preview.yml from 2.33.1 to 2.35.0 by dependabot in #6907
  • chore(sample): Bump React Native sample to 0.88.0 by antonis in #6910
  • chore(deps): bump actions/setup-java from 6.0.1 to 6.1.0 by dependabot in #6909
  • chore(deps): bump the codeql-action group with 3 updates by dependabot in #6905
  • chore(deps): update Sentry Android Gradle Plugin to v6.24.0 by github-actions in #6902
  • chore(deps): bump @appium/support from 7.0.6 to 7.2.8 by dependabot in #6897
  • ci(e2e): Remove app metrics job and performance-tests by antonis in #6896

🤖 This preview updates automatically when you update the PR.

@antonis antonis added the ready-to-merge Triggers the full CI test suite label Oct 22, 2026
@antonis
antonis marked this pull request as ready for review October 22, 2026 09:09

@alwx alwx 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.

Looks good.

@antonis
antonis merged commit 318db54 into main Oct 22, 2026
120 of 126 checks passed
@antonis
antonis deleted the ci/bump-eol-node branch October 22, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Triggers the full CI test suite

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants