Parallelize minimum Xcode 16 CI - #85
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
fail-fast: false, and give every UI lane a collision-free diagnostic artifact.Why
PR #84's serial minimum-Xcode job took about 61 minutes because all UI suites ran one after another. The matrix lets those independent suites run concurrently while preserving the same compatibility and supply-chain checks.
Successive CI runs exposed concrete Xcode 16 runner cases: an off-screen Host folder row, a runner-owned Simulator disappearing from destinations, the document picker restoring Recents or the Host folder asynchronously, a reported file-cell tap that did not complete selection, a dropped first synthesized terminal command, and a RootFS install losing disk headroom after the Simulator runtime download. The implementation now handles only those observable infrastructure states with bounded retries and keeps product assertions fail-closed.
Validation
swift test— 200 tests, 1 expected skip, 0 failures (earlier unchanged product-code validation)ruby Tests/Scripts/ReleaseComplianceTests.rb— 71 runs, 635 assertions, 0 failuresTests/Scripts/RuntimeSmokeScriptTests.shtestSystemFileImportAndShareExportRoundTripHost App iPhone UI smoke on Xcode 26.6 — passed in 129.462 secondstestSystemFileImportAndShareExportRoundTripHost App iPad UI smoke on Xcode 26.6 — passed in 133.961 secondstestPTYLifecycleAndShutdownHost App iPhone UI smoke on Xcode 26.6 — passed in 111.363 seconds./Scripts/check-docs.sh— 22 Chinese primaries and 22 English mirrorsruby Scripts/generate-release-compliance.rb --checkgit diff --checkRisk and release boundary
This changes CI orchestration and UI-test synchronization only; it does not change PocketRoot runtime behavior, public API, RootFS bytes, or dependency pins. It does not authorize a
v0.2.0tag, binary release, RootFS distribution, TestFlight, or App Store distribution. Physical iPad, real storage pressure, jetsam, and power-cut gates remain open as documented.