Skip to content

Commit 9efa950

Browse files
leogdionclaude
andcommitted
Restructure ubuntu matrix to include WASM types; fix Android matrix
- configure outputs separate ubuntu-os/swift/type arrays (matching MonthBar pattern) - build-ubuntu composes matrix from all three outputs; wasm/wasm-embedded types use swift:6.3-noble container; type and wasmtime-version: 41.0.3 passed to swift-build - Remove separate build-wasm job - Android: add swift 6.3 alongside 6.2, add free-disk-space step, android-swift-version/android-api-level/android-run-tests parameters, coverage upload Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a21698e commit 9efa950

File tree

1 file changed

+58
-26
lines changed

1 file changed

+58
-26
lines changed

.github/workflows/SyntaxKit.yml

Lines changed: 58 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -28,29 +28,41 @@ jobs:
2828
if: ${{ !contains(github.event.head_commit.message, 'ci skip') }}
2929
outputs:
3030
full-matrix: ${{ steps.set-matrix.outputs.full-matrix }}
31-
ubuntu-matrix: ${{ steps.set-matrix.outputs.ubuntu-matrix }}
31+
ubuntu-os: ${{ steps.set-matrix.outputs.ubuntu-os }}
32+
ubuntu-swift: ${{ steps.set-matrix.outputs.ubuntu-swift }}
33+
ubuntu-type: ${{ steps.set-matrix.outputs.ubuntu-type }}
3234
steps:
3335
- name: Determine build matrix
3436
id: set-matrix
3537
run: |
3638
if [[ "${{ github.ref }}" == "refs/heads/main" || "${{ github.event_name }}" == "pull_request" ]]; then
3739
echo "full-matrix=true" >> "$GITHUB_OUTPUT"
38-
echo 'ubuntu-matrix={"os":["noble","jammy"],"swift":[{"version":"6.0"},{"version":"6.1"},{"version":"6.2"},{"version":"6.3"}]}' >> "$GITHUB_OUTPUT"
40+
echo 'ubuntu-os=["noble","jammy"]' >> "$GITHUB_OUTPUT"
41+
echo 'ubuntu-swift=[{"version":"6.0"},{"version":"6.1"},{"version":"6.2"},{"version":"6.3"}]' >> "$GITHUB_OUTPUT"
42+
echo 'ubuntu-type=["","wasm","wasm-embedded"]' >> "$GITHUB_OUTPUT"
3943
else
4044
echo "full-matrix=false" >> "$GITHUB_OUTPUT"
41-
echo 'ubuntu-matrix={"os":["noble"],"swift":[{"version":"6.3"}]}' >> "$GITHUB_OUTPUT"
45+
echo 'ubuntu-os=["noble"]' >> "$GITHUB_OUTPUT"
46+
echo 'ubuntu-swift=[{"version":"6.3"}]' >> "$GITHUB_OUTPUT"
47+
echo 'ubuntu-type=[""]' >> "$GITHUB_OUTPUT"
4248
fi
4349
4450
build-ubuntu:
4551
name: Build on Ubuntu
4652
needs: [configure]
4753
runs-on: ubuntu-latest
48-
container: ${{ matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-{1}', matrix.swift.version, matrix.os) || format('swift:{0}-{1}', matrix.swift.version, matrix.os) }}
54+
container: ${{ (matrix.type == 'wasm' || matrix.type == 'wasm-embedded') && 'swift:6.3-noble' || matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-{1}', matrix.swift.version, matrix.os) || format('swift:{0}-{1}', matrix.swift.version, matrix.os) }}
4955
strategy:
50-
matrix: ${{ fromJSON(needs.configure.outputs.ubuntu-matrix) }}
56+
matrix:
57+
os: ${{ fromJSON(needs.configure.outputs.ubuntu-os) }}
58+
swift: ${{ fromJSON(needs.configure.outputs.ubuntu-swift) }}
59+
type: ${{ fromJSON(needs.configure.outputs.ubuntu-type) }}
5160
steps:
5261
- uses: actions/checkout@v6
5362
- uses: brightdigit/swift-build@v1.5.2
63+
with:
64+
type: ${{ matrix.type }}
65+
wasmtime-version: 41.0.3
5466
- uses: sersoft-gmbh/swift-coverage-action@v5
5567
id: coverage-files
5668
with:
@@ -74,8 +86,10 @@ jobs:
7486
matrix:
7587
runs-on: [windows-2022, windows-2025]
7688
include:
77-
- swift-version: swift-6.2-branch
78-
swift-build: 6.2-DEVELOPMENT-SNAPSHOT-2025-09-06-a
89+
- swift-version: swift-6.3-release
90+
swift-build: 6.3-RELEASE
91+
- swift-version: swift-6.2-release
92+
swift-build: 6.2-RELEASE
7993
- swift-version: swift-6.1-release
8094
swift-build: 6.1-RELEASE
8195
steps:
@@ -105,8 +119,8 @@ jobs:
105119
matrix:
106120
include:
107121
# SPM Build
108-
- runs-on: macos-15
109-
xcode: "/Applications/Xcode_26.0.app"
122+
- runs-on: macos-26
123+
xcode: "/Applications/Xcode_26.4.app"
110124

111125
steps:
112126
- uses: actions/checkout@v6
@@ -153,36 +167,36 @@ jobs:
153167

154168
# macOS Build
155169
- type: macos
156-
runs-on: macos-15
170+
runs-on: macos-26
157171
xcode: "/Applications/Xcode_26.4.app"
158172

159173
# iOS Build Matrix
160174
- type: ios
161-
runs-on: macos-15
175+
runs-on: macos-26
162176
xcode: "/Applications/Xcode_26.4.app"
163177
deviceName: "iPhone 17 Pro"
164178
osVersion: "26.4"
165179
download-platform: true
166180

167181
# watchOS Build Matrix
168182
- type: watchos
169-
runs-on: macos-15
183+
runs-on: macos-26
170184
xcode: "/Applications/Xcode_26.4.app"
171185
deviceName: "Apple Watch Ultra 3 (49mm)"
172186
osVersion: "26.4"
173187
download-platform: true
174188

175189
# tvOS Build Matrix
176190
- type: tvos
177-
runs-on: macos-15
191+
runs-on: macos-26
178192
xcode: "/Applications/Xcode_26.4.app"
179193
deviceName: "Apple TV"
180194
osVersion: "26.4"
181195
download-platform: true
182196

183197
# visionOS Build Matrix
184198
- type: visionos
185-
runs-on: macos-15
199+
runs-on: macos-26
186200
xcode: "/Applications/Xcode_26.4.app"
187201
deviceName: "Apple Vision Pro"
188202
osVersion: "26.4"
@@ -216,28 +230,46 @@ jobs:
216230
needs: [configure]
217231
if: needs.configure.outputs.full-matrix == 'true'
218232
runs-on: ubuntu-latest
233+
strategy:
234+
fail-fast: false
235+
matrix:
236+
swift:
237+
- version: "6.2"
238+
- version: "6.3"
239+
android-api-level: [33, 34]
219240
steps:
220241
- uses: actions/checkout@v6
242+
- name: Free disk space
243+
uses: jlumbroso/free-disk-space@v1.3.1
244+
with:
245+
tool-cache: false
246+
android: false
247+
dotnet: true
248+
haskell: true
249+
large-packages: true
250+
docker-images: true
251+
swap-storage: true
221252
- uses: brightdigit/swift-build@v1.5.2
253+
id: build
222254
with:
223255
type: android
224-
225-
build-wasm:
226-
name: Build for WASM
227-
needs: [configure]
228-
if: needs.configure.outputs.full-matrix == 'true'
229-
runs-on: ubuntu-latest
230-
steps:
231-
- uses: actions/checkout@v6
232-
- uses: brightdigit/swift-build@v1.5.2
256+
android-swift-version: ${{ matrix.swift.version }}
257+
android-api-level: ${{ matrix.android-api-level }}
258+
android-run-tests: true
259+
- name: Upload coverage to Codecov
260+
if: steps.build.outputs.contains-code-coverage == 'true'
261+
uses: codecov/codecov-action@v6
233262
with:
234-
type: wasm
263+
fail_ci_if_error: true
264+
flags: android-api${{ matrix.android-api-level }}-swift${{ matrix.swift.version }}
265+
verbose: true
266+
token: ${{ secrets.CODECOV_TOKEN }}
235267

236268
lint:
237269
name: Linting
238270
if: ${{ !cancelled() && !failure() && !contains(github.event.head_commit.message, 'ci skip') }}
239271
runs-on: ubuntu-latest
240-
needs: [build-ubuntu, build-macos, build-windows, build-macos-full, build-android, build-wasm]
272+
needs: [build-ubuntu, build-macos, build-windows, build-macos-full, build-android]
241273
env:
242274
MINT_PATH: .mint/lib
243275
MINT_LINK_PATH: .mint/bin
@@ -267,7 +299,7 @@ jobs:
267299
docs:
268300
name: Documentation Validation
269301
if: ${{ !cancelled() && !failure() && !contains(github.event.head_commit.message, 'ci skip') }}
270-
needs: [build-ubuntu, build-macos, build-windows, build-macos-full, build-android, build-wasm]
302+
needs: [build-ubuntu, build-macos, build-windows, build-macos-full, build-android]
271303
runs-on: ubuntu-latest
272304
steps:
273305
- uses: actions/checkout@v6

0 commit comments

Comments
 (0)