perf(ios): reuse prepared runner in Settings smoke - #2949
Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
Reviewed eddfdae. I found no code defect: removing the second The exact-head proof is still pending. The iOS Smoke Tests job for this commit was still running when I looked. When it finishes, can you confirm from its log that the first Coverage (ci.yml) was also still running; this diff does not touch it. There are no conflicts. |
|
Exact-head iOS job 107967921509 passed, and its uploaded The first |
|
Thanks, that closes the evidence gap on eddfdae. The exact-head iOS job shows one prepared runner (PID 30721) serving both the preflight and the Settings replay, with no second launch or build, and the Settings step dropped from 4m50s to 1m28s. That is the behavior this PR claims. The slow first snapshot and the failed first wait are a separate problem, and #2948 tracks them. They do not block this change. |
|
Summary
Keep the preflight daemon alive for the immediately following iOS Settings replay, so replay uses the XCTest runner
prepare ios-runneralready started. The previous workflow stopped that runner before the test; baseline CI then spent 143.8 seconds in its first click, mostly on runner restart and rebuild.One workflow file changed. Addresses the startup cost in #2948; the failed post-tap wait remains under investigation.
Validation
Commit
eddfdae9c47cf4883c876c5f32e0571d1edb7b81:pnpm check:affected --runpassed. Dedicated iPhone 17 Pro simulator: preflight 38.1 s, same-daemon replay 10.0 s (click 1.3 s); cleanup-before-replay 12.0 s (click 1.4 s) on a warm local cache.Exact-head iOS job passed. Settings replay step fell from 4m50s to 1m28s; first click fell from 143.8 s to 18.2 s. Uploaded runner log shows one preflight launch and the same PID handling replay commands, with no new build. First attempt still had a 13.1 s snapshot and failed wait; retry passed. Targeted XCTest ran for 13m55s on this PR but was skipped in the baseline, so whole-job times are not comparable.