Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 9 additions & 64 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ concurrency:
jobs:
macos:
name: macOS (Xcode ${{ matrix.xcode }})
runs-on: macos-15
runs-on: macos-26
strategy:
matrix:
xcode:
- '16.4'
- '26.5'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Print Swift version
Expand All @@ -32,13 +32,13 @@ jobs:

macos-library-evolution:
name: macOS Library Evolution (Xcode ${{ matrix.xcode }})
runs-on: macos-15
runs-on: macos-26
strategy:
matrix:
xcode:
- '16.4'
- '26.5'
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Print Swift version
Expand All @@ -50,80 +50,25 @@ jobs:
strategy:
matrix:
swift:
- '6.1'
- '6.3'
name: Ubuntu (Swift ${{ matrix.swift }})
runs-on: ubuntu-latest
container: swift:${{ matrix.swift }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Run tests
run: swift test --parallel
- name: Run tests (release)
run: swift test -c release --parallel

wasm:
name: Wasm
runs-on: ubuntu-latest
env:
OMIT_MACRO_TESTS: 1
steps:
- uses: actions/checkout@v4
- uses: bytecodealliance/actions/wasmtime/setup@v1
- name: Install Swift and Swift SDK for WebAssembly
run: |
PREFIX=/opt/swift
set -ex
curl -f -o /tmp/swift.tar.gz "https://download.swift.org/swift-6.0.2-release/ubuntu2204/swift-6.0.2-RELEASE/swift-6.0.2-RELEASE-ubuntu22.04.tar.gz"
sudo mkdir -p $PREFIX; sudo tar -xzf /tmp/swift.tar.gz -C $PREFIX --strip-component 1
$PREFIX/usr/bin/swift sdk install https://github.com/swiftwasm/swift/releases/download/swift-wasm-6.0.2-RELEASE/swift-wasm-6.0.2-RELEASE-wasm32-unknown-wasi.artifactbundle.zip --checksum 6ffedb055cb9956395d9f435d03d53ebe9f6a8d45106b979d1b7f53358e1dcb4
echo "$PREFIX/usr/bin" >> $GITHUB_PATH

- name: Build tests
run: swift build --swift-sdk wasm32-unknown-wasi --build-tests -Xlinker -z -Xlinker stack-size=$((1024 * 1024))
- name: Run tests
run: wasmtime --dir . .build/debug/swift-case-pathsPackageTests.wasm

check-macro-compatibility:
name: Check Macro Compatibility
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v5
- name: Run Swift Macro Compatibility Check
uses: Matejkob/swift-macro-compatibility-check@v1
with:
run-tests: false
major-versions-only: true

# windows:
# name: Windows (Swift ${{ matrix.swift }}, ${{ matrix.config }})
# strategy:
# matrix:
# os: [windows-latest]
# config:
# - debug
# #- release
# swift: ['6.0']
# fail-fast: false
# runs-on: ${{ matrix.os }}
# steps:
# - uses: compnerd/gha-setup-swift@main
# with:
# branch: swift-${{ matrix.swift }}-branch
# tag: ${{ matrix.swift }}-DEVELOPMENT-SNAPSHOT-2024-06-03-a
# - uses: actions/checkout@v4
# - name: Build
# run: swift build -c ${{ matrix.config }}

# android:
# strategy:
# matrix:
# swift:
# - "6.0.2"
# name: Android
# runs-on: ubuntu-latest
# env:
# OMIT_MACRO_TESTS: 1
# steps:
# - uses: actions/checkout@v4
# - uses: skiptools/swift-android-action@v2
26 changes: 13 additions & 13 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 20 additions & 3 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ let package = Package(
name: "CasePathsCore",
targets: ["CasePathsCore"]
),
.library(
name: "CasePathsMacrosSupport",
targets: ["CasePathsMacrosSupport"]
),
],
dependencies: [
.package(url: "https://github.com/swiftlang/swift-syntax", "509.0.0"..<"605.0.0"),
Expand All @@ -41,8 +45,8 @@ let package = Package(
.product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
]
),
.macro(
name: "CasePathsMacros",
.target(
name: "CasePathsMacrosSupport",
dependencies: [
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
Expand All @@ -51,9 +55,21 @@ let package = Package(
.product(name: "SwiftSyntaxBuilder", package: "swift-syntax"),
]
),
.macro(
name: "CasePathsMacros",
dependencies: [
"CasePathsMacrosSupport",
.product(name: "SwiftSyntaxMacros", package: "swift-syntax"),
.product(name: "SwiftCompilerPlugin", package: "swift-syntax"),
.product(name: "SwiftSyntax", package: "swift-syntax"),
]
),
.testTarget(
name: "CasePathsTests",
dependencies: ["CasePaths"]
dependencies: [
"CasePaths",
"CasePathsMacrosSupport",
]
),
],
swiftLanguageModes: [.v6]
Expand All @@ -75,6 +91,7 @@ if ProcessInfo.processInfo.environment["OMIT_MACRO_TESTS"] == nil {
name: "CasePathsMacrosTests",
dependencies: [
"CasePathsMacros",
"CasePathsMacrosSupport",
.product(
name: "MacroTesting",
package: "swift-macro-testing"
Expand Down
Loading