perf(ci): overlap iOS simulator boot with the native build
TH
2h ago+260+260+012345678901234567890123456789-16-16-01234567890123456789
Summary
- Start iOS simulator boot before restoring/building the generic XCTest runner. Require successful boot readiness before XCTest or CLI preflight. Follow-up to #3824.
- Existing boot-action callers keep blocking behavior. The bounded wait and native failure exits have one shared owner. Test selection and runtime behavior stay unchanged.
- Five files, +260/-16 (276 gross): CI/tooling +48/-16, tests +155/-0, evidence +57/-0; production +0/-0.
Validation
- Tested
7606f85d717f32011c92f981008be05754d1a175:pnpm check:affected --run --head HEADpassed (36 checks; 25 skipped; 2 deduplicated),exactCommit=true,checkoutChanged=false. Independent review: no findings. - Focused workflow/process tests: 40 passed, covering deferred/default behavior, mandatory readiness, native failure and alarm propagation.
- Four fresh Xcode 26.2/iOS 26.2 native build/boot comparisons passed. Mean local preparation: 40.739s serial → 29.653s overlapping, 27.2% lower. Builds slow under contention; combined preparation still improves in both comparisons. All owned simulators removed. Commands, timings and limitations.
- Required hosted CI passed at this head, including Apple/Android/Linux smoke, Coverage and Integration. Apple completed in 20m52s, versus the earlier 23m49s. Cache and test timing differences prevent attributing the entire improvement to overlap. Cache matrix skipped; automated review neutral.