Skip to content

chore: run e2e tests against a matrix of RN and Expo versions#1126

Open
descorp wants to merge 3 commits into
developfrom
chore/e2e-version-matrix
Open

chore: run e2e tests against a matrix of RN and Expo versions#1126
descorp wants to merge 3 commits into
developfrom
chore/e2e-version-matrix

Conversation

@descorp

@descorp descorp commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • pr_check.yml: replaced single-version E2E jobs with strategy.matrix runs
    • e2e-react-native now tests RN 0.76.8 (lowest supported) and 0.85.3 (latest), with fail-fast: false
    • e2e-expo now tests Expo SDK 52 (lowest supported) and 53 (latest), with fail-fast: false
  • e2e_test.yml:
    • All artifact names now include ${{ inputs.version }} to prevent upload collisions between parallel matrix runs
    • Job names now include platform and version (e.g. iOS (react-native 0.76.8)) so they are readable on the GitHub Actions dashboard
  • resolve_rn_cli_version.sh: added explicit mapping for RN 0.83, 0.84, 0.85 → CLI ^20.0.0 (previously fell through to the wrong default)

Test plan

  • Add run-e2e-tests label to a PR and verify 4 E2E workflows run in parallel (RN 0.76.8, RN 0.85.3, Expo 52, Expo 53)
  • Confirm artifact names in the run summary are distinct per version
  • Confirm job names on the GitHub dashboard show platform + version clearly

- pr_check.yml: add strategy.matrix to e2e-react-native (0.76.8, 0.85.3)
  and e2e-expo (52, 53) jobs with fail-fast: false
- e2e_test.yml: include version in all artifact names to prevent
  upload collisions between parallel matrix runs; embed platform and
  version in job names so they are readable on the GitHub dashboard
- resolve_rn_cli_version.sh: map RN 0.83/0.84/0.85 to CLI ^20.0.0
@descorp descorp added the run-e2e-tests Add to PR so e2e tests are triggered automatically label Jun 17, 2026

@gemini-code-assist gemini-code-assist Bot 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.

Code Review

This pull request updates the React Native CLI version resolution script to support React Native versions 0.83, 0.84, and 0.85. The feedback suggests using a bash glob pattern (0.8[1-5]*) instead of listing individual versions to make the pattern matching more robust against pre-release suffixes and less verbose.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.


case $major_version in
'0.81' | '0.82' ) echo '^20.0.0' ;;
'0.81' | '0.82' | '0.83' | '0.84' | '0.85' ) echo '^20.0.0' ;;

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.

medium

Using an explicit list of individual version strings can become verbose and is prone to breaking if pre-release versions (like 0.85-rc.1) are used, as the cut command on line 13 would produce 0.85-rc which fails to match '0.85' exactly.\n\nUsing a bash glob pattern like 0.8[1-5]* simplifies the pattern matching and makes it robust against pre-release suffixes.

Suggested change
'0.81' | '0.82' | '0.83' | '0.84' | '0.85' ) echo '^20.0.0' ;;
0.8[1-5]* ) echo '^20.0.0' ;;

descorp added 2 commits June 17, 2026 18:27
RN 0.85.3's generated project template sets engines.node to
'>= 22.11.0', causing yarn install to fail on Node 20.
Switch the RN matrix to include form so each version is paired
with the minimum required Node version (0.76.8 -> 20, 0.85.3 -> 22).
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-e2e-tests Add to PR so e2e tests are triggered automatically

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant