Skip to content

Commit f2cddae

Browse files
authored
Run iOS RNTester E2E tests on Apple Silicon runners
**Stack** (iOS RNTester E2E cost, review bottom-up): 1. #59635 2. #59636 3. #59637 4. #59638 5. #59640 6. #59641 7. #59642 ← this PR ## Summary: Part 7 of the iOS E2E cost stack. The RNTester E2E jobs ran on `macos-26-large`, the Intel x86_64 runner, and the `-large` runners are billed at a premium. Run them on the standard arm64 `macos-26` runner instead. The simulator and app run natively on arm64, and standard GitHub-hosted runners aren't billed for public repositories. `RNTesterApp-NewArch-{Debug,Release}` are already universal (`lipo` shows x86_64 + arm64 for the app binary, `hermesvm`, `React` and `ReactNativeDependencies`), so the build job doesn't change. Measured on CI (table in the Test Plan), the 3-core standard runner is faster than `macos-26-large` despite having fewer cores: the Debug job took 22.0 min instead of 44.6, and the Release job 43.2 min instead of 55.0. The two jobs run in parallel, so the E2E stage now takes about as long as the Release job (~43 min instead of ~55). Billed minutes go from ~100 `-large` minutes per run to none. The only step that got slower is the Maestro download and install (~2 min more). If the standard runner ever turns out to be too slow, `macos-26-xlarge` (arm64, 5 cores) is the fallback. The template app E2E is unchanged. ## Changelog: [INTERNAL] [CHANGED] - Run iOS RNTester E2E tests on Apple Silicon runners ## Test Plan: - Checked the architectures of the CI artifacts from run 40888922130 with `lipo -info`. - Ran the RNTester Release artifact locally on an arm64 iPhone 17 Pro simulator with Maestro 2.6.1 (see parts 1 and 3). - CI, comparing the previous run of this PR (`macos-26`, arm64) with #59641 (the same stack, still on `macos-26-large`). Both runs still included the since-dropped deep-link change, so the comparison is fair. Single samples, so expect noise. | Job | `macos-26-large` (#59641) | `macos-26` (#59642) | | --- | ---: | ---: | | Debug (20 flows): total | 44.6 min | 22.0 min | | Debug: test step | 33.9 min | 16.1 min | | Release (44 flows): total | 55.0 min | 43.2 min | | Release: test step | 45.3 min | 37.2 min | | Maestro install | 1.2–1.4 min | 3.1–3.3 min | | yarn install | 6.5–6.7 min | 1.5–1.7 min | The flows run faster on arm64 even with 3 cores. The only consistently slower step is downloading and installing Maestro (~2 min more); yarn install timing varies between runs on both runners. - "GL pipe is running in software mode" still appears once per job on arm64 (vs 15–18 times per job on Intel), so I'm not claiming GPU rendering. Differential Revision: D128581888 Pull Request resolved: #59642
1 parent 1236852 commit f2cddae

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

‎.github/workflows/e2e-ios-rntester.yml‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ on:
2222

2323
jobs:
2424
test:
25-
runs-on: macos-26-large
25+
# Standard arm64 runner: the simulator runs natively, and standard runners
26+
# aren't billed for public repositories. RNTesterApp is built for both
27+
# x86_64 and arm64 simulators.
28+
runs-on: macos-26
2629
outputs:
2730
# Matrix legs only keep the last value written to an output name, so each
2831
# flavor writes its own.

0 commit comments

Comments
 (0)