Download tvOS and watchOS simulator runtimes in CI#77
Merged
Conversation
GitHub keeps no more than three simulator runtime sets per Xcode version on its hosted runners and evicts older ones as new releases ship (see actions/runner-images#13570). The tvOS 18.5 runtime was rotated out from under the `macOS_26,tvOS_18` job, which has no download step, so `xcodebuild` failed with "Unable to find a device matching the provided destination specifier" and exited 70. Mirror the existing iOS download step (and the pattern used in Valet) by explicitly downloading the pinned runtimes the matrix targets: - tvOS 18.5 -> 22L572 (was missing entirely; cause of the failure) - watchOS 11.5 -> 22T572 (hardening; currently relies on the runtime happening to be pre-installed and will break the same way when it is rotated out) iOS 18.5 (22F77) and visionOS already download their runtimes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #77 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 13 13
Lines 1301 1301
=========================================
Hits 1301 1301 🚀 New features to boost your workflow:
|
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
Add explicit
xcodebuild -downloadPlatformsteps for tvOS and watchOS to theBuild Xcode 26matrix jobs, mirroring the iOS step we already have (and the pattern used in Valet).22L57222T572Why
GitHub's hosted runners keep no more than three simulator runtime sets per Xcode version and evict the oldest as new releases ship (see actions/runner-images#13570). The tvOS 18.5 runtime got rotated out from under the
macOS_26,tvOS_18job — which had no download step at all — soxcodebuildfailed with:That exits 70, which
Scripts/build.swiftrethrows asTaskError.code(70), crashing the script (SIGTRAP → exit 133). It looked like the unrelated import-trimming commit (#76) broke CI, but that commit just happened to be the next push after the runtime was evicted — an import change can't cause "unable to find a simulator device."iOS_18,watchOS_11only downloads iOS today and relies on watchOS 11.5 happening to be pre-installed; it will break the same way when that runtime is rotated out, so this hardens it now.Note
This does not address the intermittent visionOS test timeout (
*_executesAfterQueueIsDeallocated, 30s expectation) seen under the-test-iterations 100stress harness — that's a separate slow-runner flake being investigated separately.🤖 Generated with Claude Code