Skip to content

Add macos swift xcode mappings#3546

Merged
FranzBusch merged 4 commits intomainfrom
add_macos_swift_xcode_mappings
Mar 11, 2026
Merged

Add macos swift xcode mappings#3546
FranzBusch merged 4 commits intomainfrom
add_macos_swift_xcode_mappings

Conversation

@rnro
Copy link
Copy Markdown
Contributor

@rnro rnro commented Mar 11, 2026

Add Swift-version-based inputs to macOS CI workflows

Motivation

  • The macOS CI runners now provide symbolic links mapping Swift versions to Xcode apps ( Xcode_swift_6.1.app, Xcode_swift_6.2.app, Xcode_swift_6.3.app), decoupling CI from specific Xcode versions.
  • Several Xcode versions (16.3, 26.0, 26.1, 26.2) are being deprecated and removed from runners.
  • The -require-explicit-sendable build argument overrides on Xcode 16.2/16.3 are no longer needed.

Modifications

  • Added swift_6_1_enabled, swift_6_2_enabled, swift_6_3_enabled inputs (with corresponding build_arguments_override, test_arguments_override, setup_command) to macos_tests.yml, all defaulting to false.
  • Added macos_ swift_6_1_enabled, macos_ swift_6_2_enabled, macos_ swift_6_3_enabled inputs to macos_benchmarks.yml.
  • Added matrix entries using the Xcode_swift_6.X.app symlink paths.
  • All existing xcode_* inputs remain unchanged for backwards compatibility with downstream consumers.
  • Enabled the new Swift-version inputs in main.yml and pull_request.yml, removing the old xcode_16_2/16_3 build argument overrides.

Result

  • SwiftNIO CI now runs macOS jobs for Swift 6.1, 6.2, and 6.3 using the stable Xcode_swift_6.X.app symlinks.
  • Downstream consumers are unaffected.

An example of this working here https://github.com/apple/swift-nio/actions/runs/22960228328/job/66648462048?pr=3546

rnro added 3 commits March 11, 2026 15:12
Motivation

* The macOS CI runners now provide symbolic links mapping Swift versions
  to Xcode apps (`Xcode_swift_6.1.app`, `Xcode_swift_6.2.app`,
  `Xcode_swift_6.3.app`), decoupling CI from specific Xcode versions.
* Several Xcode versions (16.3, 26.0, 26.1, 26.2) are being deprecated
  and removed from runners.
* The new model lets downstream adopters target Swift versions directly,
  which are stable across Xcode version churn.

Modifications

* Added `swift_6_1_enabled`, `swift_6_2_enabled`, `swift_6_3_enabled`
  inputs (with corresponding `build_arguments_override`,
  `test_arguments_override`, `setup_command`) to `macos_tests.yml`,
  all defaulting to `false`.
* Added `macos_swift_6_1_enabled`, `macos_swift_6_2_enabled`,
  `macos_swift_6_3_enabled` inputs to `macos_benchmarks.yml`.
* Added matrix entries using the `Xcode_swift_6.X.app` symlink paths.
* All existing `xcode_*` inputs remain unchanged for backwards
  compatibility with downstream consumers.

Result

* Callers can now opt in to Swift-version-based macOS CI jobs.
* No existing behavior changes for current consumers.
Motivation

* SwiftNIO should use the new Swift-version-based macOS CI inputs
  introduced in the previous commit.
* The `-require-explicit-sendable` build argument overrides on
  Xcode 16.2/16.3 are no longer needed.

Modifications

* Enabled `swift_6_1_enabled`, `swift_6_2_enabled`,
  `swift_6_3_enabled` in both `main.yml` and `pull_request.yml`.
* Removed `xcode_16_2_build_arguments_override` and
  `xcode_16_3_build_arguments_override` from both callers.

Result

* SwiftNIO CI now runs macOS jobs for Swift 6.1, 6.2, and 6.3 using
  the stable `Xcode_swift_6.X.app` symlinks.
@rnro rnro force-pushed the add_macos_swift_xcode_mappings branch from c11059d to ba5ef35 Compare March 11, 2026 15:24
This reverts commit ba5ef35.
@rnro rnro marked this pull request as ready for review March 11, 2026 15:34
@rnro rnro added the semver/none No version bump required. label Mar 11, 2026
@FranzBusch FranzBusch merged commit e7a0c52 into main Mar 11, 2026
1 of 2 checks passed
@FranzBusch FranzBusch deleted the add_macos_swift_xcode_mappings branch March 11, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

semver/none No version bump required.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants