Skip to content

Commit 536fed6

Browse files
committed
ci(workflows): shard the iOS E2E run across simulators
1 parent 67c340d commit 536fed6

1 file changed

Lines changed: 23 additions & 2 deletions

File tree

.github/workflows/e2e.yml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,28 @@ jobs:
8888
e2e-ios:
8989
needs: coverage
9090
runs-on: macos-latest
91-
timeout-minutes: 60
91+
timeout-minutes: 40
92+
# iOS simulators are stable for the full suite (unlike the Android
93+
# emulator — see the e2e-android note), so this split is purely a
94+
# speed optimization: the iOS Maestro run is ~22 minutes and is the
95+
# critical path for the whole E2E workflow. Sharding it across three
96+
# simulators (same balanced groups as Android) runs them in parallel
97+
# and roughly halves wall-clock time. macOS minutes are free on this
98+
# public repo, so the extra per-shard build/boot overhead is fine.
99+
# ``fail-fast: false`` so one shard's failure still lets the others
100+
# report.
101+
strategy:
102+
fail-fast: false
103+
matrix:
104+
include:
105+
- name: components
106+
suites: components
107+
- name: hooks-nav
108+
suites: hooks navigation
109+
- name: layout-styling-anim-misc
110+
suites: layout styling animations misc
111+
112+
name: e2e-ios (${{ matrix.name }})
92113

93114
steps:
94115
- name: Checkout
@@ -109,6 +130,6 @@ jobs:
109130
brew tap facebook/fb && brew install idb-companion
110131
111132
- name: Build and run E2E tests
112-
run: ./scripts/run-e2e.sh ios
133+
run: ./scripts/run-e2e.sh ios ${{ matrix.suites }}
113134
env:
114135
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)