Skip to content

fix(ci): pin client SDK macOS jobs to macos-15 for Xcode 16.2#302

Merged
mattrmc1 merged 2 commits into
mainfrom
mmccarthy/fix/ci-pin-macos-15
Jun 30, 2026
Merged

fix(ci): pin client SDK macOS jobs to macos-15 for Xcode 16.2#302
mattrmc1 merged 2 commits into
mainfrom
mmccarthy/fix/ci-pin-macos-15

Conversation

@mattrmc1

@mattrmc1 mattrmc1 commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Summary

The macos-latest runner label is migrating to macOS 26 (started June 15, 2026), which does not ship Xcode 16.2. The client SDK build requires Xcode for its iOS workloads and pins xcode-version: '16.2' via the ./.github/actions/xcode-select action.

Jobs that land on the new macOS 26 image fail immediately at the xcode-select step, since /Applications/Xcode_16.2.app does not exist there:

sudo xcode-select -switch /Applications/Xcode_16.2.app

Jobs that still land on macOS 15 pass, so CI is currently nondeterministic — the same commit a03e942 produced both a passing and a failing build-and-test (macos-latest) run, and the failing run carries GitHub's own migration notice annotation.

This pins the macOS jobs to macos-15, where Xcode 16.2 remains installed, so the existing xcode-version: '16.2' pin stays valid:

  • sdk-client-ci.ymlbuild-and-test matrix
  • release-sdk-client.ymlbuild and publish jobs

Notes

macos-15 is itself a temporary target and will eventually be deprecated. The longer-term follow-up is validating the iOS build against Xcode 26 on the macOS 26 image; this change is the minimal hotfix to keep CI and releases green in the meantime.

Testing

CI on this branch runs the client SDK build-and-test job on macos-15 and completes the xcode-select step successfully.


Note

Low Risk
CI/release runner label change only; no application code or secrets handling changes.

Overview
Pins client SDK GitHub Actions jobs from macos-latest to macos-15 so they stay on an image that still has Xcode 16.2, matching the existing ./.github/actions/xcode-select pin.

sdk-client-ci.ymlbuild-and-test matrix OS label. release-sdk-client.ymlbuild and publish job runs-on values. This avoids nondeterministic failures when macos-latest moves to macOS 26, where /Applications/Xcode_16.2.app is missing and the xcode-select step fails immediately.

Reviewed by Cursor Bugbot for commit 21e3497. Bugbot is set up for automated code reviews on this repo. Configure here.

@mattrmc1 mattrmc1 requested a review from a team as a code owner June 30, 2026 20:30
The macos-latest runner label is migrating to macOS 26 (started June 15,
2026), which no longer ships Xcode 16.2. Jobs landing on the new image
fail at the xcode-select step (sudo xcode-select -switch
/Applications/Xcode_16.2.app), while jobs on the old macOS 15 image still
pass — making CI a coin flip.

Bump the pinned Xcode version to 26.3 rather than pinning the runner to
the soon-to-be-deprecated macos-15. 26.3 is present on both the current
macOS 15 and the new macOS 26 images, so it works regardless of which
image a run lands on during the migration window.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mattrmc1 mattrmc1 force-pushed the mmccarthy/fix/ci-pin-macos-15 branch from d49325b to ddd3ed9 Compare June 30, 2026 20:38

@cursor cursor 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.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ddd3ed9. Configure here.

Comment thread .github/workflows/sdk-client-ci.yml Outdated
Revert the Xcode 26.3 bump in favor of pinning the runner. The
macos-latest migration to macOS 26 dropped both Xcode 16.2 AND Android
SDK platform API 34, so bumping only Xcode still fails when the
net8.0-android target builds (android-34 is absent on macOS 26). macos-15
carries both Xcode 16.2 and Android API 34, fixing CI in a single change
without altering what is built.

Migrating the client SDK to the macOS 26 toolchain (Xcode 26 + Android
API 35) should be done deliberately in a separate PR.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@mattrmc1 mattrmc1 requested a review from tanderson-ld June 30, 2026 20:50
@mattrmc1 mattrmc1 merged commit 31b14b7 into main Jun 30, 2026
25 checks passed
@mattrmc1 mattrmc1 deleted the mmccarthy/fix/ci-pin-macos-15 branch June 30, 2026 21:01
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.

2 participants