chore: run e2e tests against a matrix of RN and Expo versions#1126
chore: run e2e tests against a matrix of RN and Expo versions#1126descorp wants to merge 3 commits into
Conversation
- 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
There was a problem hiding this comment.
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' ;; |
There was a problem hiding this comment.
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.
| '0.81' | '0.82' | '0.83' | '0.84' | '0.85' ) echo '^20.0.0' ;; | |
| 0.8[1-5]* ) echo '^20.0.0' ;; |
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).
|



Summary
pr_check.yml: replaced single-version E2E jobs withstrategy.matrixrunse2e-react-nativenow tests RN0.76.8(lowest supported) and0.85.3(latest), withfail-fast: falsee2e-exponow tests Expo SDK52(lowest supported) and53(latest), withfail-fast: falsee2e_test.yml:${{ inputs.version }}to prevent upload collisions between parallel matrix runsiOS (react-native 0.76.8)) so they are readable on the GitHub Actions dashboardresolve_rn_cli_version.sh: added explicit mapping for RN0.83,0.84,0.85→ CLI^20.0.0(previously fell through to the wrong default)Test plan
run-e2e-testslabel to a PR and verify 4 E2E workflows run in parallel (RN 0.76.8, RN 0.85.3, Expo 52, Expo 53)