Skip to content

Pick a Swift 6.0 Xcode that has an iOS SDK - #1

Merged
ryanlintott merged 2 commits into
mainfrom
ci/swift-6-0-xcode-probe
Sep 7, 2026
Merged

Pick a Swift 6.0 Xcode that has an iOS SDK#1
ryanlintott merged 2 commits into
mainfrom
ci/swift-6-0-xcode-probe

Conversation

@ryanlintott

Copy link
Copy Markdown
Owner

Mirrors OEVoice#2.

The Swift 6.0 compatibility job intermittently fails because some macos-15 runner instances come up with no iOS platform installed for Xcode 16.0, so xcodebuild rejects the destination before compiling anything:

error: Unable to find a destination matching the provided destination specifier:
		{ generic:1, platform:iOS }

This is a runner lottery rather than a configuration problem — run 33928105341 failed on image 20260829.0321.1 and then passed on a re-run of the same commit on the same image version. An in-job retry would land on the same runner and fail identically, so the only real remedy is re-running the job.

What this changes

  • The job probes Xcode_16.app, Xcode_16.1.app and Xcode_16.2.app (Swift 6.0, 6.0.2 and 6.0.3 — any of them tests the same language version) and uses the first that reports an iphoneos SDK, exporting DEVELOPER_DIR through GITHUB_ENV. The job-level DEVELOPER_DIR is removed so it cannot override that. If only 16.0 has been trimmed, the job now recovers on its own.
  • If none has an iOS SDK, the job fails in seconds with No Swift 6.0 Xcode on this runner has an iOS SDK installed. instead of a destination dump, making it obvious the run just needs retrying.
  • actions/checkout bumped v4 → v7, which runs on Node 24 and clears the Node 20 deprecation annotation.

The current-swift job on macos-26 is untouched; it has shown no sign of this.

🤖 Generated with Claude Code

Some macos-15 runner instances come up without an iOS platform installed for
Xcode 16.0, which fails destination resolution before any code is compiled.
Probe Xcode 16.0, 16.1 and 16.2 (Swift 6.0, 6.0.2 and 6.0.3) and use the
first that reports an iphoneos SDK, failing with a clear message if none
does so a bad runner is obvious and can simply be re-run.

Also bump actions/checkout to v7, which runs on Node 24.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b7fe19c616

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

A stripped runner still lists an iphoneos SDK in `xcodebuild -showsdks` even
though the iOS platform is missing, so the previous check selected Xcode 16.0
on a runner that could not resolve an iOS destination and the build failed
anyway. Ask for the scheme's destinations and require an `Any iOS Device`
entry that carries no error.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Repository owner deleted a comment from chatgpt-codex-connector Bot Sep 7, 2026
@ryanlintott
ryanlintott merged commit 8b9e411 into main Sep 7, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant