Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 15 additions & 7 deletions .github/workflows/swift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ jobs:
timeout-minutes: 10
steps:
- uses: actions/checkout@v6
# swift-testing 6.3.2 (shared by the test targets) has a swift-tools-version
# 6.2 manifest, which the runner's default Xcode (Swift 6.1.2) cannot
# resolve. Xcode 26.0 ships Swift 6.2 — same version already used by the
# iOS job, so it is known to be available on the runner.
- name: Select Xcode 26.0
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: "26.0"
- name: Verify Swift version
run: swift --version
- name: Build (macOS)
Expand Down Expand Up @@ -92,11 +100,11 @@ jobs:
build-android:
# Cross-build the SwiftMail library for Android via skiptools/swift-android-action.
#
# Build-only (no test run): swift-testing 0.12.0 — an exact pin shared by
# every test target — does not compile against Bionic, so we validate that
# the library cross-compiles rather than the test suites. The earlier
# "invalid redeclaration of 'badOS'" blocker is fixed by depending on
# swift-nio-imap 0.3.1-pre, which adds Android/Bionic to its libc guards.
# Build-only (no test run): the test targets depend on swift-testing, whose
# Android compatibility is not validated here, so we check that the library
# cross-compiles rather than the test suites. The earlier "invalid
# redeclaration of 'badOS'" blocker is fixed upstream by apple/swift-nio-imap
# #826 (commit bcf8756), which adds Android/Bionic to NIOIMAPCore's libc guards.
#
# Package.swift also drops the ArgumentParser-based CLI demos on Android
# (keyed on the TARGET_OS_ANDROID env the action sets) to avoid a spurious
Expand All @@ -113,7 +121,7 @@ jobs:
swift-version: "6.3.2"
# SDK + NDK overrun the runner's ~14 GiB free space.
free-disk-space: true
# Skip building/running the test targets (swift-testing 0.12.0 is not
# Android-compatible); build the library + its dependencies only.
# Skip building/running the test targets (swift-testing's Android
# compatibility is unverified); build the library + its deps only.
build-tests: false
run-tests: false
26 changes: 13 additions & 13 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 11 additions & 6 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,21 @@ let package = Package(
url: "https://github.com/apple/swift-nio-imap",
revision: "bcf875610ca56dfd7bae869fa19ca3149c075908"
),
// Pinned to the upstream commit that merged the Windows-SDK BoringSSL
// header workarounds (_WINSOCKAPI_/NOMINMAX/NOCRYPT scoped to the
// CNIOBoringSSL target, apple/swift-nio-ssl#585). Switch to a normal
// `from:` once a release ships with that fix.
// Pinned to the latest upstream main, which carries the Windows-SDK
// BoringSSL header workarounds (_WINSOCKAPI_/NOMINMAX/NOCRYPT scoped to
// the CNIOBoringSSL target, apple/swift-nio-ssl#585). No release contains
// that fix yet (latest tag is 2.37.0) — switch to a normal `from:` once
// one ships.
.package(
url: "https://github.com/apple/swift-nio-ssl",
revision: "ae6b517f53289d72b7b0d4495b4609d25065deed"
revision: "407d82d5b6cc00e1c3fb83a81b1539b70c788c5e"
),
.package(url: "https://github.com/apple/swift-collections.git", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-testing", exact: "0.12.0"),
// swift-testing releases track toolchain versions: 6.3.2's manifest is
// swift-tools-version 6.2, so every platform that compiles the test
// targets needs Swift 6.2+. The macOS CI job selects Xcode 26 for that
// reason (Linux/Android/Windows runners are already on Swift 6.3.x).
.package(url: "https://github.com/apple/swift-testing", exact: "6.3.2"),
.package(url: "https://github.com/apple/swift-docc-plugin", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.3.0")
],
Expand Down