ci: Move macOS jobs to the macos-26 runner and Xcode 26#109
Closed
keelerm84 wants to merge 1 commit into
Closed
Conversation
3845aa0 to
b8cd872
Compare
fe6dd53 to
101b9ae
Compare
b8cd872 to
efa6daf
Compare
b6ee56c to
823dff9
Compare
Restructure CI to mirror swift-core: the library and its tests run on the full OS matrix via the pure-Swift toolchain (swift test), and Xcode is confined to the one job that genuinely needs it. - Collapse the separate test-macos / test-linux / test-windows jobs into a single matrixed `test` job running `swift test` on linux (6.0/6.1), macos, and windows. The macOS entry uses macos-26 + Xcode 26, the toolchain Apple requires for App Store submission as of 2026-04-28 (on macOS `swift` comes from the selected Xcode). - build-apple is the only xcodebuild job: it cross-compiles to iOS/tvOS/watchOS/macOS (SwiftPM cannot target the non-host Apple platforms). Bumped to macos-26 / Xcode 26. - lint drops its setup-xcode step; swiftlint is a standalone binary. - contract-tests stays on macOS + Xcode 26: its Kitura-based service pulls in BlueSSLService, which uses the OpenSSL 1.1 API removed in OpenSSL 3 and so cannot build on the Linux (Ubuntu 24.04) swift container. test-thread-sanitizer already runs on Linux (added in the preceding commit). Orthogonal to the deployment floor: Apple's mandate governs the build SDK, not the deployment target, so the iOS 15 / macOS 11 floor (SDK-2632) is unaffected.
823dff9 to
704b28b
Compare
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.
Apple requires App Store uploads to be built with Xcode 26 / the iOS 26 SDK as of
2026-04-28. Building and testing on Xcode 26 validates the library against the
toolchain consumers must now use. GitHub's macos-26 runner (GA) ships Xcode 26.x.
Bumps the five macOS jobs (lint, build-apple, test-macos, test-thread-sanitizer,
contract-tests) from macos-15 / Xcode 16.4 to macos-26 / Xcode 26 (pinned to the
latest 26.x via
xcode-version: '26'). test-linux and test-windows are unchanged.Orthogonal to the deployment floor: Apple's mandate governs the build SDK, not the
deployment target, so the iOS 15 / macOS 11 floor (SDK-2632) is unaffected.
Note
Low Risk
Changes are limited to CI workflow configuration; no library runtime, auth, or deployment-target behavior is modified.
Overview
Aligns GitHub Actions with Apple’s App Store toolchain requirement (Xcode 26 / iOS 26 SDK by 2026-04-28) by moving
lint,build-apple, andcontract-teststomacos-26, pinningxcode-version: '26'wherexcodebuildor an explicit toolchain is needed, and dropping redundant Xcode setup fromlint(runner default).test-macos,test-linux, andtest-windowsare replaced by a singletestjob with a matrix (Swift 6.0/6.1 on Linux containers, macOS with conditional Xcode 26 selection, Windows withgha-setup-swift6.1), all using./.github/actions/test-swiftpm.test-thread-sanitizerstays on Ubuntu/swift:6.1.Adds a short workflow comment explaining pure-Swift vs
xcodebuildjobs and why contract-tests remain macOS-only (Kitura/OpenSSL 1.1).Reviewed by Cursor Bugbot for commit 704b28b. Bugbot is set up for automated code reviews on this repo. Configure here.