perf(ci): overlap iOS simulator boot with the native build

TH
2h ago
+260-16

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 HEAD passed (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.