From be15c72a678b4b74fde1d350585a90d9a71a47d4 Mon Sep 17 00:00:00 2001 From: Leo Li Date: Wed, 23 Sep 2026 00:06:06 -0700 Subject: [PATCH] ci: run the CmuxMobileShell package tests serially MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `mobile-core-package` never reports. Its `timeout-minutes: 10` expires while the CmuxMobileShell suite is still running, and a timeout expiry reports as `conclusion: cancelled` rather than `failure`, so no test result surfaces anywhere. Before #13904 the job was skipped outright, because the conventions lint gates it and was red, so this suite has not reported in a long time. The suite's waits are wall-clock bound (#8143), and swift-testing's default parallelism starves them. Measured on 2319ef27a05, macOS 26.6.2 / Xcode 27: parallel 1060 tests, >12 min, ~161 failures, never finished serial 1060 tests, 65 s, 17 failures `MobileMacConnectionPoolTests` alone is the clearest case: 81 issues and 373 s in parallel, 83 tests passing in 2.6 s serially. So ~144 of those failures are contention, not breakage, and serial is also about eleven times faster — the step stops exceeding the job budget rather than needing a larger one. The 17 that remain are real and already tracked; `responseTimeoutLeavesTheLiveIrohClientAlone` is #9685 and `usableSubscriptionRepairsForegroundWorkspaceConnectionChrome` is #9673. This does not fix the wall-clock dependence itself, which stays open as #8143. It stops that dependence being load-bearing in CI. Co-Authored-By: Claude Opus 5 --- .github/workflows/test-ios.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test-ios.yml b/.github/workflows/test-ios.yml index 173a5fb23fc9..1c66f1e04fa3 100644 --- a/.github/workflows/test-ios.yml +++ b/.github/workflows/test-ios.yml @@ -333,10 +333,14 @@ jobs: # iOS shell replay/liveness regressions live in this package target. # Keep them under the iOS package gate so PR CI enforces the mobile # terminal mirror behavior without relying on local-only SwiftPM runs. - args=(--package-path Packages/iOS/CmuxMobileShell) - if [ -n "${FOCUSED_SWIFT_PACKAGE:-}" ]; then - args+=(--no-parallel) - fi + # This suite's waits are wall-clock bound (#8143), so swift-testing's + # default parallelism starves them: the same 1060 tests take over 12 + # minutes and report ~161 failures in parallel, against 65 seconds and + # 17 failures serially on the same commit. The 10-minute job budget + # then kills the step, which reports as `cancelled` rather than a + # failure, so none of it surfaced. Run it serially until the waits + # themselves are fixed. + args=(--package-path Packages/iOS/CmuxMobileShell --no-parallel) if [ -n "${SWIFT_TEST_FILTER:-}" ]; then args+=(--filter "$SWIFT_TEST_FILTER") fi