1- # NOTE: every job here fails on a clean checkout until PureSwift/AndroidBluetooth#4 is merged.
2- # AndroidBluetooth requests the `AndroidManifest` product from `Android`, but it moved to
3- # `swift-android-native` (PureSwift/Android#40), and SwiftPM validates the whole package graph even
4- # for dependencies that are conditional on `.android`:
5- # error: product 'AndroidManifest' required by package 'androidbluetooth' ... not found
6- # That is a one-line manifest fix upstream, not a problem with this repo.
71name : CI
82
93on :
@@ -19,33 +13,34 @@ concurrency:
1913jobs :
2014 test :
2115 name : Test
22- runs-on : macos-15
16+ runs-on : macos-26
2317 timeout-minutes : 45
2418 steps :
2519 - uses : actions/checkout@v4
20+ # Pinned, not latest-stable: WasmKit 0.3.x declares swift-tools-version 6.3, so it needs
21+ # Swift 6.3+. Xcode 26.5 (the macos-26 default) ships Swift 6.2.x and fails with
22+ # "package 'wasmkit' is using Swift tools version 6.3.0 but the installed version is 6.2.4".
2623 - uses : maxim-lobanov/setup-xcode@v1
2724 with :
28- xcode-version : latest-stable
25+ xcode-version : ' 26.6 '
2926 - name : Build
3027 run : swift build --build-tests
3128 - name : Test
3229 run : swift test
3330
3431 ios-archive :
3532 name : iOS Archive
36- runs-on : macos-15
33+ runs-on : macos-26
3734 timeout-minutes : 60
3835 steps :
3936 - uses : actions/checkout@v4
37+ # Pinned, not latest-stable: WasmKit 0.3.x declares swift-tools-version 6.3, so it needs
38+ # Swift 6.3+. Xcode 26.5 (the macos-26 default) ships Swift 6.2.x and fails with
39+ # "package 'wasmkit' is using Swift tools version 6.3.0 but the installed version is 6.2.4".
4040 - uses : maxim-lobanov/setup-xcode@v1
4141 with :
42- xcode-version : latest-stable
42+ xcode-version : ' 26.6 '
4343
44- # WasmKit declares `.treatAllWarnings(as: .error)` for Apple platforms, which conflicts with
45- # the `-suppress-warnings` Xcode passes to package dependencies:
46- # error: Conflicting options '-warnings-as-errors' and '-suppress-warnings'
47- # The setting only reaches package targets from the command line, so it cannot live in the
48- # xcconfig or the project.
4944 - name : Archive
5045 working-directory : Darwin
5146 run : |
5651 -archivePath "$RUNNER_TEMP/BluetoothExplorer.xcarchive" \
5752 -skipPackagePluginValidation \
5853 -skipMacroValidation \
59- SWIFT_SUPPRESS_WARNINGS=NO \
6054 CODE_SIGNING_ALLOWED=NO
6155
6256 - name : Verify archive contents
7266 name : ios-archive
7367 path : ${{ runner.temp }}/BluetoothExplorer.xcarchive
7468 retention-days : 14
75-
76- android-package :
77- name : Android Swift Package
78- runs-on : macos-15
79- timeout-minutes : 60
80- steps :
81- - uses : actions/checkout@v4
82- - uses : maxim-lobanov/setup-xcode@v1
83- with :
84- xcode-version : latest-stable
85-
86- - name : Install Swift Android SDK
87- run : |
88- brew install skiptools/skip/skip || (brew update && brew install skiptools/skip/skip)
89- skip android sdk install --version 6.3.3
90-
91- # Only the plugin engine is built here. The full app does not yet cross-compile for Android:
92- # AndroidBluetooth's `@JavaImplementation` macro generates invalid code for its scan callback,
93- # and WasmKit's SystemExtras target does not compile against the Android sysroot
94- # (`st_mode` is UInt32 there while swift-system's CInterop.Mode is UInt16). Neither is
95- # reachable from this target. See Documentation/AndroidSwiftUIMigration.md.
96- - name : Build plugin engine for Android
97- run : swift build --swift-sdk swift-6.3.3-RELEASE_android --target BluetoothExplorerPluginEngine
0 commit comments