From 0ac914f1ad087e5447a516d9df6cca8829b17349 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 00:12:12 +0100 Subject: [PATCH 01/31] Create swift.yml --- .github/workflows/swift.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/swift.yml diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml new file mode 100644 index 0000000..21ae770 --- /dev/null +++ b/.github/workflows/swift.yml @@ -0,0 +1,22 @@ +# This workflow will build a Swift project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift + +name: Swift + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v4 + - name: Build + run: swift build -v + - name: Run tests + run: swift test -v From d400aa2da4bb1663bea33e5bb5134b52af004085 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 00:23:37 +0100 Subject: [PATCH 02/31] Run Github workflows on macOS 26 --- .github/workflows/swift.yml | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 21ae770..9f5070d 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -5,18 +5,17 @@ name: Swift on: push: - branches: [ "main" ] + branches: ["main"] pull_request: - branches: [ "main" ] + branches: ["main"] jobs: build: - - runs-on: macos-latest + runs-on: macos-26 steps: - - uses: actions/checkout@v4 - - name: Build - run: swift build -v - - name: Run tests - run: swift test -v + - uses: actions/checkout@v4 + - name: Build + run: swift build -v + - name: Run tests + run: swift test -v From 37fe9d7b2a8d10067cf5162d27cbace1c45b31eb Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 00:43:09 +0100 Subject: [PATCH 03/31] Checkout swiftlang/swift in CI --- .github/workflows/swift.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 9f5070d..1c39f98 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,6 +15,11 @@ jobs: steps: - uses: actions/checkout@v4 + respository: swiftlang/swift + path: swift-project/swift + - uses: actions/checkout@v4 + path: Compute + - run: cd Compute - name: Build run: swift build -v - name: Run tests From 3fd8daff9404c7acc4e0573a787c3ae5df25f451 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 00:44:25 +0100 Subject: [PATCH 04/31] Fix GitHub workflow file syntax --- .github/workflows/swift.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 1c39f98..4a56f28 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -15,10 +15,12 @@ jobs: steps: - uses: actions/checkout@v4 - respository: swiftlang/swift - path: swift-project/swift + with: + repository: swiftlang/swift + path: swift-project/swift - uses: actions/checkout@v4 - path: Compute + with: + path: Compute - run: cd Compute - name: Build run: swift build -v From c0bcc0172bca28ce5cb143a1505a49db72730700 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 00:48:51 +0100 Subject: [PATCH 05/31] Set working directory in CI --- .github/workflows/swift.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 4a56f28..da1c367 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -21,8 +21,9 @@ jobs: - uses: actions/checkout@v4 with: path: Compute - - run: cd Compute - name: Build run: swift build -v + working-directory: ./Compute - name: Run tests run: swift test -v + working-directory: ./Compute From 0124b1c82abd269b0f447cf2697cdcbf2cd27ab7 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 00:58:55 +0100 Subject: [PATCH 06/31] Build the Swift toolchain in CI --- .github/workflows/swift.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index da1c367..c801a09 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -14,10 +14,20 @@ jobs: runs-on: macos-26 steps: + - name: Install dependencies + run: brew install ninja sccache - uses: actions/checkout@v4 with: repository: swiftlang/swift path: swift-project/swift + - run: utils/update-checkout --clone-with-ssh + working-directory: ./swift-project/swift + - name: Build toolchain + run: | + utils/build-script --skip-build-benchmarks \ + --swift-darwin-supported-archs "$(uname -m)" \ + --release-debuginfo --swift-disable-dead-stripping \ + --bootstrapping=hosttools - uses: actions/checkout@v4 with: path: Compute From 9980b245dd4a97d456b501c3f3fca15f36ae0842 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 10:22:08 +0100 Subject: [PATCH 07/31] Try calling utils/update-checkout without ssh --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index c801a09..ce600f3 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -20,7 +20,7 @@ jobs: with: repository: swiftlang/swift path: swift-project/swift - - run: utils/update-checkout --clone-with-ssh + - run: utils/update-checkout --clone working-directory: ./swift-project/swift - name: Build toolchain run: | From c2978f3745dc17f1c52d79528517349828e369c4 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 10:44:14 +0100 Subject: [PATCH 08/31] Add working directory to Build toolchain step --- .github/workflows/swift.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index ce600f3..4d091e5 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -28,6 +28,7 @@ jobs: --swift-darwin-supported-archs "$(uname -m)" \ --release-debuginfo --swift-disable-dead-stripping \ --bootstrapping=hosttools + working-directory: ./swift-project/swift - uses: actions/checkout@v4 with: path: Compute From 87a2add28793c71f8b8561a17613a2f931dfe8f4 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Tue, 18 Nov 2025 21:42:30 +0100 Subject: [PATCH 09/31] Clone release/6.2 branch of swift --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 4d091e5..f246921 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -20,7 +20,7 @@ jobs: with: repository: swiftlang/swift path: swift-project/swift - - run: utils/update-checkout --clone + - run: utils/update-checkout --clone --scheme release/6.2 working-directory: ./swift-project/swift - name: Build toolchain run: | From 1d3653c7d99db395584624e6e85e50413ccb5c44 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Wed, 19 Nov 2025 01:54:42 +0100 Subject: [PATCH 10/31] Add symlinks to swift and llvm build output directories in CI --- .github/workflows/swift.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index f246921..5b30a01 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -29,6 +29,11 @@ jobs: --release-debuginfo --swift-disable-dead-stripping \ --bootstrapping=hosttools working-directory: ./swift-project/swift + - run: | + mkdir -p build/Default + ln -s ../Ninja-RelWithDebInfoAssert/swift-macosx-arm64 build/Default/swift + ln -s ../Ninja-RelWithDebInfoAssert/llvm-macosx-arm64 build/Default/llvm + working-directory: ./swift-project - uses: actions/checkout@v4 with: path: Compute From ce0faf390efb848360397b15bc41e12dcd72cdc1 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Wed, 19 Nov 2025 02:02:55 +0100 Subject: [PATCH 11/31] Cache toolchain build in CI --- .github/workflows/swift.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 5b30a01..1339260 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -22,6 +22,11 @@ jobs: path: swift-project/swift - run: utils/update-checkout --clone --scheme release/6.2 working-directory: ./swift-project/swift + - name: Cache toolchain build + uses: actions/cache@v4 + with: + path: swift-project/build + key: swift-project-build-6.2-${{ runner.os }} - name: Build toolchain run: | utils/build-script --skip-build-benchmarks \ From ff64e0de556af72158a39efa93ffe7c1a63d30f9 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Wed, 19 Nov 2025 11:23:04 +0100 Subject: [PATCH 12/31] Try building C++ before Swift in CI --- .github/workflows/swift.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 1339260..8fcbdb8 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -43,7 +43,9 @@ jobs: with: path: Compute - name: Build - run: swift build -v + run: | + swift build -v --target ComputeCxx + swift build -v working-directory: ./Compute - name: Run tests run: swift test -v From 9787c3a543b2337a23c6a9514674732ce24ce3e6 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Wed, 19 Nov 2025 14:56:10 +0100 Subject: [PATCH 13/31] Delete build and test steps so cache is populated --- .github/workflows/swift.yml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 8fcbdb8..13ca55d 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -39,14 +39,3 @@ jobs: ln -s ../Ninja-RelWithDebInfoAssert/swift-macosx-arm64 build/Default/swift ln -s ../Ninja-RelWithDebInfoAssert/llvm-macosx-arm64 build/Default/llvm working-directory: ./swift-project - - uses: actions/checkout@v4 - with: - path: Compute - - name: Build - run: | - swift build -v --target ComputeCxx - swift build -v - working-directory: ./Compute - - name: Run tests - run: swift test -v - working-directory: ./Compute From 717f7260756c4899c3c2c8d50d52eca8f02fcfea Mon Sep 17 00:00:00 2001 From: James Moschou Date: Wed, 19 Nov 2025 21:01:14 +0100 Subject: [PATCH 14/31] Add back checkout Compute step --- .github/workflows/swift.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 13ca55d..4d05613 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -39,3 +39,6 @@ jobs: ln -s ../Ninja-RelWithDebInfoAssert/swift-macosx-arm64 build/Default/swift ln -s ../Ninja-RelWithDebInfoAssert/llvm-macosx-arm64 build/Default/llvm working-directory: ./swift-project + - uses: actions/checkout@v4 + with: + path: Compute From db485ac49af31f0ec65633d453f0b9cd3c069fad Mon Sep 17 00:00:00 2001 From: James Moschou Date: Wed, 19 Nov 2025 22:35:20 +0100 Subject: [PATCH 15/31] Build the release version of swift --- .github/workflows/swift.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 4d05613..97b2bfe 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -26,18 +26,18 @@ jobs: uses: actions/cache@v4 with: path: swift-project/build - key: swift-project-build-6.2-${{ runner.os }} + key: swift-project-build-6.2-Ninja-Release-${{ runner.os }} - name: Build toolchain run: | utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ - --release-debuginfo --swift-disable-dead-stripping \ + --release --swift-disable-dead-stripping \ --bootstrapping=hosttools working-directory: ./swift-project/swift - run: | mkdir -p build/Default - ln -s ../Ninja-RelWithDebInfoAssert/swift-macosx-arm64 build/Default/swift - ln -s ../Ninja-RelWithDebInfoAssert/llvm-macosx-arm64 build/Default/llvm + ln -s ../Ninja-Release/swift-macosx-arm64 build/Default/swift + ln -s ../Ninja-Release/llvm-macosx-arm64 build/Default/llvm working-directory: ./swift-project - uses: actions/checkout@v4 with: From 6029dd52630797135043c49f94cd0b104ddbcf30 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Wed, 19 Nov 2025 23:28:49 +0100 Subject: [PATCH 16/31] Use --skip-build and build swift target with Ninja directly --- .github/workflows/swift.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 97b2bfe..581f639 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -32,12 +32,14 @@ jobs: utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ + --skip-build \ --bootstrapping=hosttools + ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift working-directory: ./swift-project/swift - run: | mkdir -p build/Default - ln -s ../Ninja-Release/swift-macosx-arm64 build/Default/swift - ln -s ../Ninja-Release/llvm-macosx-arm64 build/Default/llvm + ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift + ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm working-directory: ./swift-project - uses: actions/checkout@v4 with: From 76fafccace2e561ead5c39d662a97b471b3c3f64 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 10:43:50 +0100 Subject: [PATCH 17/31] Build swift project in action --- .../build-swift-project-macos/action.yml | 43 +++++++++++++++++++ .github/workflows/swift.yml | 28 +----------- 2 files changed, 45 insertions(+), 26 deletions(-) create mode 100644 .github/actions/build-swift-project-macos/action.yml diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml new file mode 100644 index 0000000..1738a53 --- /dev/null +++ b/.github/actions/build-swift-project-macos/action.yml @@ -0,0 +1,43 @@ +name: Build Swift Project + +inputs: + checkout-scheme: + description: The schema passed to utils/update-checkout + required: true + +runs: + using: "composite" + steps: + - name: Install dependencies + run: brew install ninja sccache + - uses: actions/checkout@v4 + with: + repository: swiftlang/swift + path: swift-project/swift + - name: Update checkout + run: utils/update-checkout --clone --scheme $CHECKOUT_SCHEME + working-directory: ./swift-project/swift + env: + CHECKOUT_SCHEME: ${{ inputs.checkout-scheme }} + - name: Build toolchain + run: | + utils/build-script --skip-build-benchmarks \ + --swift-darwin-supported-archs "$(uname -m)" \ + --release --swift-disable-dead-stripping \ + --bootstrapping=hosttools \ + --skip-build + working-directory: ./swift-project/swift + - name: Build llvm + run: | + ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 + working-directory: ./swift-project/swift + - name: Build swift-frontend + run: | + ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift-frontend + working-directory: ./swift-project/swift + - name: Create symbolic links to build directories + run: | + mkdir -p build/Default + ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift + ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm + working-directory: ./swift-project diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 581f639..008082c 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -14,33 +14,9 @@ jobs: runs-on: macos-26 steps: - - name: Install dependencies - run: brew install ninja sccache - - uses: actions/checkout@v4 - with: - repository: swiftlang/swift - path: swift-project/swift - - run: utils/update-checkout --clone --scheme release/6.2 - working-directory: ./swift-project/swift - - name: Cache toolchain build - uses: actions/cache@v4 + - uses: ./.github/actions/build-swift-project-macos with: - path: swift-project/build - key: swift-project-build-6.2-Ninja-Release-${{ runner.os }} - - name: Build toolchain - run: | - utils/build-script --skip-build-benchmarks \ - --swift-darwin-supported-archs "$(uname -m)" \ - --release --swift-disable-dead-stripping \ - --skip-build \ - --bootstrapping=hosttools - ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift - working-directory: ./swift-project/swift - - run: | - mkdir -p build/Default - ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift - ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm - working-directory: ./swift-project + checkout-scheme: release/6.2 - uses: actions/checkout@v4 with: path: Compute From 48145a0b850a1c9a72b0d08b6fecc2a5147e7daf Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 10:52:17 +0100 Subject: [PATCH 18/31] Run actions/checkout before running local action --- .github/workflows/swift.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 008082c..3c09938 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -14,9 +14,9 @@ jobs: runs-on: macos-26 steps: - - uses: ./.github/actions/build-swift-project-macos - with: - checkout-scheme: release/6.2 - uses: actions/checkout@v4 with: path: Compute + - uses: ./.github/actions/build-swift-project-macos + with: + checkout-scheme: release/6.2 From 554b0e867f91e24799f22e5c63d40cf628647bf5 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 10:54:31 +0100 Subject: [PATCH 19/31] Add build cmark step --- .github/actions/build-swift-project-macos/action.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 1738a53..3f31c7e 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -31,6 +31,10 @@ runs: run: | ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 working-directory: ./swift-project/swift + - name: Build cmark + run: | + ninja -C ../build/Ninja-ReleaseAssert/cmark-macosx-arm64 + working-directory: ./swift-project/swift - name: Build swift-frontend run: | ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift-frontend From 034d2417aa2f9664cde3f3b5938aa68befaa9646 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 11:04:45 +0100 Subject: [PATCH 20/31] Pass correct path to run action --- .github/workflows/swift.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index 3c09938..f3bca7d 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -17,6 +17,6 @@ jobs: - uses: actions/checkout@v4 with: path: Compute - - uses: ./.github/actions/build-swift-project-macos + - uses: ./Compute/.github/actions/build-swift-project-macos with: checkout-scheme: release/6.2 From 8528cb4569dd52b888269dcdad40356d4ee412d2 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 11:13:30 +0100 Subject: [PATCH 21/31] Add shell property to action steps --- .github/actions/build-swift-project-macos/action.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 3f31c7e..f4f1bda 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -8,14 +8,16 @@ inputs: runs: using: "composite" steps: - - name: Install dependencies - run: brew install ninja sccache - uses: actions/checkout@v4 with: repository: swiftlang/swift path: swift-project/swift + - name: Install dependencies + run: brew install ninja sccache + shell: bash - name: Update checkout run: utils/update-checkout --clone --scheme $CHECKOUT_SCHEME + shell: bash working-directory: ./swift-project/swift env: CHECKOUT_SCHEME: ${{ inputs.checkout-scheme }} @@ -26,22 +28,27 @@ runs: --release --swift-disable-dead-stripping \ --bootstrapping=hosttools \ --skip-build + shell: bash working-directory: ./swift-project/swift - name: Build llvm run: | ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 + shell: bash working-directory: ./swift-project/swift - name: Build cmark run: | ninja -C ../build/Ninja-ReleaseAssert/cmark-macosx-arm64 + shell: bash working-directory: ./swift-project/swift - name: Build swift-frontend run: | ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift-frontend + shell: bash working-directory: ./swift-project/swift - name: Create symbolic links to build directories run: | mkdir -p build/Default ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm + shell: bash working-directory: ./swift-project From 403a4bd6e5da46e21c21026788c9c7c228f8357a Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 11:30:11 +0100 Subject: [PATCH 22/31] Skip swift-foundation-icu --- .github/actions/build-swift-project-macos/action.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index f4f1bda..e6e8033 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -16,7 +16,9 @@ runs: run: brew install ninja sccache shell: bash - name: Update checkout - run: utils/update-checkout --clone --scheme $CHECKOUT_SCHEME + run: | + utils/update-checkout --clone --scheme $CHECKOUT_SCHEME \ + --skip-repository swift-foundation-icu shell: bash working-directory: ./swift-project/swift env: From 09eb213af5a949fcc99d7847d31530f6eded0a21 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 13:03:45 +0100 Subject: [PATCH 23/31] Use distcc --- .github/actions/build-swift-project-macos/action.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index e6e8033..f26b821 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -13,7 +13,7 @@ runs: repository: swiftlang/swift path: swift-project/swift - name: Install dependencies - run: brew install ninja sccache + run: brew install ninja sccache distcc shell: bash - name: Update checkout run: | @@ -29,6 +29,7 @@ runs: --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ --bootstrapping=hosttools \ + --distcc \ --skip-build shell: bash working-directory: ./swift-project/swift From 88ab6b5a9bb94dff9a1d44b6afa00f44269b95e5 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 13:16:34 +0100 Subject: [PATCH 24/31] Revert "Use distcc" This reverts commit 09eb213af5a949fcc99d7847d31530f6eded0a21. --- .github/actions/build-swift-project-macos/action.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index f26b821..e6e8033 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -13,7 +13,7 @@ runs: repository: swiftlang/swift path: swift-project/swift - name: Install dependencies - run: brew install ninja sccache distcc + run: brew install ninja sccache shell: bash - name: Update checkout run: | @@ -29,7 +29,6 @@ runs: --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ --bootstrapping=hosttools \ - --distcc \ --skip-build shell: bash working-directory: ./swift-project/swift From 5ac567604653e13fef1d9307b697512215b381d0 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 13:19:14 +0100 Subject: [PATCH 25/31] Run mozilla-actions/sccache-action --- .../build-swift-project-macos/action.yml | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index e6e8033..900efed 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -23,30 +23,22 @@ runs: working-directory: ./swift-project/swift env: CHECKOUT_SCHEME: ${{ inputs.checkout-scheme }} - - name: Build toolchain + - name: Run sccache-cache + uses: mozilla-actions/sccache-action@v0.0.9 + - name: Build swift-frontend run: | utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ --bootstrapping=hosttools \ --skip-build - shell: bash - working-directory: ./swift-project/swift - - name: Build llvm - run: | ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 - shell: bash - working-directory: ./swift-project/swift - - name: Build cmark - run: | ninja -C ../build/Ninja-ReleaseAssert/cmark-macosx-arm64 - shell: bash - working-directory: ./swift-project/swift - - name: Build swift-frontend - run: | ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift-frontend shell: bash working-directory: ./swift-project/swift + env: + SCCACHE_GHA_ENABLED: "true" - name: Create symbolic links to build directories run: | mkdir -p build/Default From 5853fc250ca81e615d80fc7a87cf8f5dfe9fb571 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 17:09:54 +0100 Subject: [PATCH 26/31] Don't pass --skip-build anymore and use --bootstrapping=bootstrapping-with-hostlibs --- .github/actions/build-swift-project-macos/action.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 900efed..455c259 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -25,16 +25,12 @@ runs: CHECKOUT_SCHEME: ${{ inputs.checkout-scheme }} - name: Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.9 - - name: Build swift-frontend + - name: Build Swift run: | utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ - --bootstrapping=hosttools \ - --skip-build - ninja -C ../build/Ninja-ReleaseAssert/llvm-macosx-arm64 - ninja -C ../build/Ninja-ReleaseAssert/cmark-macosx-arm64 - ninja -C ../build/Ninja-ReleaseAssert/swift-macosx-arm64 swift-frontend + --bootstrapping=bootstrapping-with-hostlibs shell: bash working-directory: ./swift-project/swift env: From cdd9772220fe71f59aef38f855d2db3fa44fe61b Mon Sep 17 00:00:00 2001 From: James Moschou Date: Fri, 21 Nov 2025 17:43:38 +0100 Subject: [PATCH 27/31] Pass --sccache --- .github/actions/build-swift-project-macos/action.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index 455c259..d3086d6 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -30,7 +30,8 @@ runs: utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ - --bootstrapping=bootstrapping-with-hostlibs + --bootstrapping=bootstrapping-with-hostlibs \ + --sccache shell: bash working-directory: ./swift-project/swift env: From 16b609a7f42f324f124509dc0b0fc5a171f1ce46 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 22 Nov 2025 14:55:29 +0100 Subject: [PATCH 28/31] Change bootstrapping to hosttools --- .github/actions/build-swift-project-macos/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index d3086d6..e3e01fe 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -30,7 +30,7 @@ runs: utils/build-script --skip-build-benchmarks \ --swift-darwin-supported-archs "$(uname -m)" \ --release --swift-disable-dead-stripping \ - --bootstrapping=bootstrapping-with-hostlibs \ + --bootstrapping=hosttools \ --sccache shell: bash working-directory: ./swift-project/swift From daf6ff9a83544b7131f7583539b73a821d7475e8 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 22 Nov 2025 16:08:23 +0100 Subject: [PATCH 29/31] Add --skip-history to utils/update-checkout --- .github/actions/build-swift-project-macos/action.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml index e3e01fe..20fe020 100644 --- a/.github/actions/build-swift-project-macos/action.yml +++ b/.github/actions/build-swift-project-macos/action.yml @@ -18,6 +18,7 @@ runs: - name: Update checkout run: | utils/update-checkout --clone --scheme $CHECKOUT_SCHEME \ + --skip-history \ --skip-repository swift-foundation-icu shell: bash working-directory: ./swift-project/swift From 276efbd63a272c36e9d76ef5c5e5783a140365b8 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 22 Nov 2025 17:02:12 +0100 Subject: [PATCH 30/31] Add -no-verify-emitted-module-interface when building Compute target --- Package.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index d2f0c38..a66f1a3 100644 --- a/Package.swift +++ b/Package.swift @@ -87,7 +87,14 @@ let package = Package( .target( name: "Compute", dependencies: ["ComputeCxx"], - swiftSettings: [.enableExperimentalFeature("Extern"), .unsafeFlags(["-enable-library-evolution"])] + swiftSettings: [ + .enableExperimentalFeature("Extern"), + .unsafeFlags([ + "-enable-library-evolution", + // When -enable-library-evolution is specified verify-emitted-module-interface command fails + "-no-verify-emitted-module-interface", + ]), + ] ), .testTarget( name: "ComputeTests", From ff65564fffe93ddeecb46cb40a47ec0df301f964 Mon Sep 17 00:00:00 2001 From: James Moschou Date: Sat, 22 Nov 2025 17:03:41 +0100 Subject: [PATCH 31/31] Add Build step --- .github/workflows/swift.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml index f3bca7d..d6f4a43 100644 --- a/.github/workflows/swift.yml +++ b/.github/workflows/swift.yml @@ -20,3 +20,6 @@ jobs: - uses: ./Compute/.github/actions/build-swift-project-macos with: checkout-scheme: release/6.2 + - name: Build + run: swift build + working-directory: ./Compute