From 169fe7a81267a3b8dcd10bcbc8a64d1b6245b4e5 Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Thu, 2 Apr 2026 13:10:15 -0400 Subject: [PATCH 1/6] 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 --- .github/workflows/SyntaxKit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index be6f269..b1114ee 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -53,7 +53,7 @@ jobs: name: Build on Ubuntu needs: [configure] runs-on: ubuntu-latest - container: ${{ matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-{1}', matrix.swift.version, matrix.os) || format('swift:{0}-{1}', matrix.swift.version, matrix.os) }} + 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) }} strategy: matrix: os: ${{ fromJSON(needs.configure.outputs.ubuntu-os) }} From 658f5449aa7a686f660e374c259093e8e58f4cd8 Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Thu, 2 Apr 2026 16:04:13 -0400 Subject: [PATCH 2/6] Fix CI workflow issues from PR review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix Windows matrix to use proper cross-product (runs-on × swift) instead of mismatched include entries - Fix lint/docs if conditions to guard against null head_commit on PR events - Fix cache cleanup to skip tag deletions (only process branch deletes) - Add cancellation guard to build-macos-full - Remove hardcoded swift:6.3-noble container for WASM builds; use matrix version - Add paths-ignore to CodeQL to skip doc-only commits Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/SyntaxKit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index b1114ee..be6f269 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -53,7 +53,7 @@ jobs: name: Build on Ubuntu needs: [configure] runs-on: ubuntu-latest - 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) }} + container: ${{ matrix.swift.nightly && format('swiftlang/swift:nightly-{0}-{1}', matrix.swift.version, matrix.os) || format('swift:{0}-{1}', matrix.swift.version, matrix.os) }} strategy: matrix: os: ${{ fromJSON(needs.configure.outputs.ubuntu-os) }} From d708c9a362cb829a6545fb5b32124c1a86af6e21 Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Thu, 2 Apr 2026 16:52:01 -0400 Subject: [PATCH 3/6] Drop Swift 6.1 from Windows and exclude wasm for Swift <=6.1 on Ubuntu swift-docc-plugin 1.4.6 is incompatible with Swift 6.1 on Windows (missing Lock, SnippetExtractor, ParsedSymbolGraphArguments types). Windows matrix now covers 6.2 and 6.3 only. WASM/wasm-embedded tooling does not support Swift 6.0 or 6.1 on Ubuntu, so those combinations are excluded from the build matrix. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/SyntaxKit.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index be6f269..5bc84b4 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -113,8 +113,6 @@ jobs: build: 6.3-RELEASE - version: swift-6.2-release build: 6.2-RELEASE - - version: swift-6.1-release - build: 6.1-RELEASE steps: - uses: actions/checkout@v6 - name: Enable git symlinks From c6b8e4cfa17763c59224aae3202990304da10e93 Mon Sep 17 00:00:00 2001 From: leogdion Date: Thu, 2 Apr 2026 18:17:28 -0400 Subject: [PATCH 4/6] Update SyntaxKit.yml --- .github/workflows/SyntaxKit.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index 5bc84b4..be6f269 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -113,6 +113,8 @@ jobs: build: 6.3-RELEASE - version: swift-6.2-release build: 6.2-RELEASE + - version: swift-6.1-release + build: 6.1-RELEASE steps: - uses: actions/checkout@v6 - name: Enable git symlinks From 89776f7e1f89675d8b330a7d788c0c40a4655d3c Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Fri, 3 Apr 2026 11:17:01 -0400 Subject: [PATCH 5/6] Add all-done aggregator job to prevent cancelled jobs appearing as failures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cancelled jobs from concurrent workflow runs show as red failures in PR checks. The all-done job depends on lint and docs (which aggregate all build jobs), runs with if: always(), and only fails on real failures — not cancellations or skips. Configure branch protection to require All Done as the single required check. Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/SyntaxKit.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index be6f269..dd3d280 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -326,3 +326,17 @@ jobs: - uses: actions/checkout@v6 - name: Validate Documentation run: ./Scripts/validate-docs.sh + + all-done: + name: All Done + if: always() + needs: [lint, docs] + runs-on: ubuntu-latest + steps: + - name: Check for failures + run: | + if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then + echo "One or more required jobs failed." + exit 1 + fi + echo "All required checks passed, were skipped, or were cancelled." From bfa7cdd9e5bb8cd89660b7a7cb299dcbe2ade216 Mon Sep 17 00:00:00 2001 From: Leo Dion Date: Sat, 4 Apr 2026 18:18:26 -0400 Subject: [PATCH 6/6] Simplify CI triggers: push only on main/tags, remove all-done aggregator Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/SyntaxKit.yml | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/.github/workflows/SyntaxKit.yml b/.github/workflows/SyntaxKit.yml index dd3d280..ebfd1d4 100644 --- a/.github/workflows/SyntaxKit.yml +++ b/.github/workflows/SyntaxKit.yml @@ -1,8 +1,10 @@ name: SyntaxKit on: push: - branches-ignore: - - '*WIP' + branches: + - main + tags: + - 'v[0-9]*.[0-9]*.[0-9]*' paths-ignore: - '**.md' - 'Docs/**' @@ -326,17 +328,3 @@ jobs: - uses: actions/checkout@v6 - name: Validate Documentation run: ./Scripts/validate-docs.sh - - all-done: - name: All Done - if: always() - needs: [lint, docs] - runs-on: ubuntu-latest - steps: - - name: Check for failures - run: | - if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then - echo "One or more required jobs failed." - exit 1 - fi - echo "All required checks passed, were skipped, or were cancelled."