Skip to content

fix: restore client SDK CI to macos-latest with Xcode 26.3 and Android 34 install (SDK-2623) - #326

Open
tanderson-ld wants to merge 1 commit into
mainfrom
ta/SDK-2623/ci-macos-latest-android-34
Open

fix: restore client SDK CI to macos-latest with Xcode 26.3 and Android 34 install (SDK-2623)#326
tanderson-ld wants to merge 1 commit into
mainfrom
ta/SDK-2623/ci-macos-latest-android-34

Conversation

@tanderson-ld

@tanderson-ld tanderson-ld commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Summary

Reverts the interim `macos-15` pin from #302 and addresses the two underlying issues that made the pin necessary. The client SDK CI moves back onto `macos-latest`.

Two issues break the client SDK CI when the runner lands on macOS 26 (the new `macos-latest`):

  1. Xcode 16.2 not present on macOS 26. `macos-latest` began migrating to macOS 26 on June 15, 2026. That image ships only Xcode 26.x. The client SDK's `./.github/actions/xcode-select` step tries to switch to `/Applications/Xcode_16.2.app` and fails immediately.
  2. Android SDK Platform 34 no longer preinstalled on macos-latest. The runner-image rolling window aged out API 34; `net8.0-android` builds fail with `XA5207: Could not find android.jar for API level 34`.

Changes

  • `.github/actions/xcode-select/action.yml`: default `xcode-version` `16.2` → `26.3`. Xcode 26.3 is present on both `macos-latest` (macOS 26) and `macos-15` (fallback) per the current runner-image manifests.
  • `.github/workflows/sdk-client-ci.yml`: matrix `os: [macos-15]` → `[macos-latest]`; explicit `xcode-version` `'16.2'` → `'26.3'`; add `Setup .NET` + `Restore workloads` + `Install Android SDK dependencies` steps before the shared `./.github/actions/ci` composite.
  • `.github/workflows/release-sdk-client.yml`: same three-step block added to the `build` job; both `build` and `publish` jobs move from `macos-15` → `macos-latest` and bump their explicit `xcode-version` to `26.3`. The `publish` job doesn't get the Android install step because it runs `dotnet pack --no-build` and doesn't recompile.

The Android install step follows the same pattern as launchdarkly/hello-dotnet-client#21, invoking the .NET Android workload's `InstallAndroidDependencies` MSBuild target so the workload itself declares which platform components it needs. Scoped to the two client-SDK workflows only — not added to the shared `./.github/actions/ci` composite that other SDKs use, since only the client SDK builds `net8.0-android`.

Notes

  • The `net8.0-android` target defaults to API 34 via the .NET 8 Android workload manifest, which Microsoft only ships in the `8.0.100` feature-band (capped at `34.0.154`). Moving to API 35+ would require bumping the SDK's TargetFramework to `net9.0-android` — a customer-facing .NET major bump. Deferred; this PR is the pragmatic unblock.

Test plan

  • YAML validated locally with `YAML.load_file`.
  • Watch `macos-latest` CI on this PR to confirm `xcode-select`, workload restore, Android install, and downstream build all succeed.
  • Once merged, confirm subsequent release-please PRs from server-side SDKs no longer fail on the client-SDK required check.

Note

Low Risk
Changes are limited to GitHub Actions for the client SDK; no product code, auth, or customer-facing runtime behavior.

Overview
Unblocks client SDK CI and release on rolling macos-latest (macOS 26) by undoing the temporary macos-15 pin and fixing the two runner-image mismatches that caused it.

Xcode: The shared xcode-select action default and explicit workflow pins move from 16.2 → 26.3, since macOS 26 images no longer ship Xcode 16.2.

Runners: sdk-client-ci and release-sdk-client (build + publish) run on macos-latest again instead of macos-15.

Android: Before the shared CI/build steps, the CI and release build jobs add .NET 8 setup, workload restore, and an InstallAndroidDependencies MSBuild target for net8.0-android so API 34 is installed when the runner no longer preinstalls it. The release publish job is unchanged aside from runner/Xcode (pack-only, no Android install).

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

@tanderson-ld
tanderson-ld requested a review from a team as a code owner July 31, 2026 18:24

@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 07b1505. Configure here.

- uses: ./.github/actions/xcode-select
with:
xcode-version: '16.2'
xcode-version: '26.3'

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Xcode 26.3 absent on macos-latest

High Severity

The workflows move to macos-latest while selecting Xcode 26.3, but the current macos-26 image only ships Xcode 26.5, 26.6, and a 27 preview. The xcode-select step will fail immediately looking for /Applications/Xcode_26.3.app, recreating the same CI break this change aims to fix.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 07b1505. Configure here.

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