From 66a48a32a3a351c06d960c74bca09313ac52f17a Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Mon, 27 May 2024 19:23:19 +0100 Subject: [PATCH 01/11] Run tests on Windows This may not work and still be blocked by https://github.com/apple/swift-package-manager/issues/6367. Would close #5. --- .github/workflows/tests.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bf9553a..ce50f27 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -139,3 +139,17 @@ jobs: - name: swift test run: swift test + + windows_tests: + name: Windows Tests + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - uses: compnerd/gha-setup-swift@main + with: + branch: "swift-5.10.0-release" + tag: "5.10.0-RELEASE" + + - name: swift test + run: swift test From 46d3c56caa3c338b98b44d236308475b3f7f9571 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Mon, 27 May 2024 19:26:15 +0100 Subject: [PATCH 02/11] Fix branch and tag of Swift version --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ce50f27..37e84d2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -148,8 +148,8 @@ jobs: - uses: compnerd/gha-setup-swift@main with: - branch: "swift-5.10.0-release" - tag: "5.10.0-RELEASE" + branch: "swift-5.10-release" + tag: "5.10-RELEASE" - name: swift test run: swift test From 807528c8e24f9d8160c141176220c45cac7ecabc Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Thu, 27 Mar 2025 22:15:58 +0000 Subject: [PATCH 03/11] Attempt to fix building on Windows --- Package.swift | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index ba6f9d8..3a9d612 100644 --- a/Package.swift +++ b/Package.swift @@ -60,7 +60,16 @@ let package = Package( .product(name: "SwiftSyntaxMacros", package: "swift-syntax"), .product(name: "SwiftCompilerPlugin", package: "swift-syntax"), ], - swiftSettings: [.enableExperimentalFeature("StrictConcurrency")] + swiftSettings: [ + .enableExperimentalFeature("StrictConcurrency"), + .unsafeFlags( + [ + "-XFrontend", "-entry-point-function-name", + "-XFrontend", "wWinMain", + ], + .when(platforms: [.windows]) + ), + ] ), .testTarget( name: "HashableMacroTests", From 0a5119cc2c1ea8424daf629cf51b4b9f088d10cd Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Thu, 27 Mar 2025 22:35:32 +0000 Subject: [PATCH 04/11] Attempt to use latest Swift version via winget This is available in the Window 2025 image? https://github.com/actions/runner-images/issues/8584#issuecomment-2730089045 --- .github/workflows/tests.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 37e84d2..ea4004c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -142,14 +142,15 @@ jobs: windows_tests: name: Windows Tests - runs-on: windows-latest + runs-on: windows-2025 steps: - uses: actions/checkout@v4 - - uses: compnerd/gha-setup-swift@main - with: - branch: "swift-5.10-release" - tag: "5.10-RELEASE" + - name: Install platform dependencies + run: winget install --id Microsoft.VisualStudio.2022.Community --exact --force --custom "--add Microsoft.VisualStudio.Component.Windows11SDK.22000 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.Tools.ARM64" + + - name: Install Swift + run: winget install --id Swift.Toolchain -e - name: swift test run: swift test From 4dbf0a234eeff2ea9fa92d065806de89c835d292 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Thu, 27 Mar 2025 22:39:34 +0000 Subject: [PATCH 05/11] Automatically accept agreements --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ea4004c..4179524 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -147,10 +147,10 @@ jobs: - uses: actions/checkout@v4 - name: Install platform dependencies - run: winget install --id Microsoft.VisualStudio.2022.Community --exact --force --custom "--add Microsoft.VisualStudio.Component.Windows11SDK.22000 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.Tools.ARM64" + run: winget install --id Microsoft.VisualStudio.2022.Community --exact --force --custom "--add Microsoft.VisualStudio.Component.Windows11SDK.22000 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.Tools.ARM64" --accept-source-agreements --accept-package-agreements - name: Install Swift - run: winget install --id Swift.Toolchain -e + run: winget install --id Swift.Toolchain -e --accept-source-agreements --accept-package-agreements - name: swift test run: swift test From c76389c7c4d4a2cf83d7a82e6bb600231beff83a Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Tue, 1 Apr 2025 22:22:59 +0100 Subject: [PATCH 06/11] Rebuild path to ensure `swift` command is found --- .github/workflows/tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 4179524..c02399d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -152,5 +152,10 @@ jobs: - name: Install Swift run: winget install --id Swift.Toolchain -e --accept-source-agreements --accept-package-agreements + # Normally the terminal would be restarted but we can't do that in GitHub actions, so we + # manually rebuild the path to allow `swift` to be accessible. + - name: Rebuild path + run: $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User") + - name: swift test run: swift test From 8cc0e7eba112489c638ec21e52432d1eef27e859 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Wed, 2 Apr 2025 22:46:39 +0100 Subject: [PATCH 07/11] Use compnerd/gha-setup-swift with the Swift 6.1 --- .github/workflows/tests.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c02399d..1eb6ec8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -146,16 +146,11 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Install platform dependencies - run: winget install --id Microsoft.VisualStudio.2022.Community --exact --force --custom "--add Microsoft.VisualStudio.Component.Windows11SDK.22000 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.Component.VC.Tools.ARM64" --accept-source-agreements --accept-package-agreements - - name: Install Swift - run: winget install --id Swift.Toolchain -e --accept-source-agreements --accept-package-agreements - - # Normally the terminal would be restarted but we can't do that in GitHub actions, so we - # manually rebuild the path to allow `swift` to be accessible. - - name: Rebuild path - run: $env:Path = [System.Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path","User") + uses: compnerd/gha-setup-swift@main + with: + branch: swift-6.1-release + tag: 6.1-RELEASE - name: swift test run: swift test From 2b8ad0b71d995091c1cc74c949ccf82d354b6b89 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Wed, 2 Apr 2025 22:55:22 +0100 Subject: [PATCH 08/11] Test Swift 5.9, 5.10, 6.0, and 6.1 on Windows and Linux --- .github/workflows/tests.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9f7ee87..a0e861c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -132,7 +132,7 @@ jobs: fail-fast: false matrix: os: ["ubuntu-latest"] - swift: ["5.9.2", "5.10"] + swift: ["5.9", "5.10", "6.0", "6.1"] steps: - uses: actions/checkout@v4 @@ -153,6 +153,18 @@ jobs: windows_tests: name: Windows Tests runs-on: windows-2025 + strategy: + fail-fast: false + matrix: + include: + - branch: "swift-5.9.2-release" + tag: "5.9.2-RELEASE" + - branch: "swift-5.10.1-release" + tag: "5.10.1-RELEASE" + - branch: "swift-6.0.3-release" + tag: "6.0.3-RELEASE" + - branch: "swift-6.1-release" + tag: "6.1-RELEASE" steps: - uses: actions/checkout@v4 From 86e9244687d51809b6869630eca7b4c75f8207d0 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Wed, 2 Apr 2025 22:55:30 +0100 Subject: [PATCH 09/11] Document Swift versions being tested in Xcode --- .github/workflows/tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a0e861c..9b9e7ea 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,15 +19,15 @@ jobs: matrix: include: - os: "macos-14" - xcode: "15.1" # Same Swift version as 15.2 + xcode: "15.1" # Swift 5.9.2. Same Swift version as Xcode 15.2 - os: "macos-14" - xcode: "15.3" # Same Swift version as 15.4 + xcode: "15.3" # Swift 5.10. Same Swift version as 15.4 - os: "macos-15" - xcode: "16.0" + xcode: "16.0" # Swift 6.0. - os: "macos-15" - xcode: "16.1" + xcode: "16.1" # Swift 6.0.2. - os: "macos-15" - xcode: "16.2" + xcode: "16.2" # Swift 6.0.3. steps: - uses: actions/checkout@v4 From 8a6880701917f702390d2d623f22d313f4b6a347 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Wed, 2 Apr 2025 22:58:54 +0100 Subject: [PATCH 10/11] =?UTF-8?q?Use=20lowercase=20=E2=80=9Cf=E2=80=9D=20f?= =?UTF-8?q?or=20`-Xfrontend`=20flag=20`-XFrontend`=20=E2=86=92=20`-Xfronte?= =?UTF-8?q?nd`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Package.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index a864d88..180ad97 100644 --- a/Package.swift +++ b/Package.swift @@ -60,8 +60,8 @@ let package = Package( .enableExperimentalFeature("StrictConcurrency"), .unsafeFlags( [ - "-XFrontend", "-entry-point-function-name", - "-XFrontend", "wWinMain", + "-Xfrontend", "-entry-point-function-name", + "-Xfrontend", "wWinMain", ], .when(platforms: [.windows]) ), From 35007fd4565396f025201461f4a2e17620a5b3c7 Mon Sep 17 00:00:00 2001 From: Joseph Duffy Date: Sun, 28 Dec 2025 19:36:06 -0800 Subject: [PATCH 11/11] Do not test on Windows version that fail to run `swift test` --- .github/workflows/tests.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bada0df..b33ef30 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -181,12 +181,7 @@ jobs: fail-fast: false matrix: include: - - branch: "swift-5.9.2-release" - tag: "5.9.2-RELEASE" - - branch: "swift-5.10.1-release" - tag: "5.10.1-RELEASE" - - branch: "swift-6.0.3-release" - tag: "6.0.3-RELEASE" + # Requires https://github.com/swiftlang/swift-package-manager/issues/6367 so can't use e.g. 6.0.3, 5.10.1, or 5.9.2. - branch: "swift-6.1.3-release" tag: "6.1.3-RELEASE" - branch: "swift-6.2.2-release"