diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 643a068..48445fc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -9,15 +9,15 @@ on: paths: - '.swiftlint.yml' - ".github/workflows/**" - - "Package.swift" - - "Source/**" + - "Package*.swift" + - "Sources/**" - "Tests/**" jobs: SwiftLint: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: GitHub Action for SwiftLint uses: norio-nomura/action-swiftlint@3.2.1 with: @@ -34,16 +34,12 @@ jobs: fail-fast: false matrix: include: - - xcode: "Xcode_15.0" - runsOn: macos-13 - name: "macOS 13, Xcode 15.0, Swift 5.9.0" + - xcode: "Xcode_16.4" + runsOn: macos-15 + name: "macOS 15, Xcode 16.4, Swift 6.1" params: "-skipMacroValidation" - - xcode: "Xcode_14.3.1" - runsOn: macos-13 - name: "macOS 13, Xcode 14.3.1, Swift 5.8.0" - params: "" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Blade-Package" -destination "platform=macOS" clean -enableCodeCoverage YES ${{ matrix.params }} -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov @@ -66,18 +62,13 @@ jobs: fail-fast: false matrix: include: - - destination: "OS=17.0.1,name=iPhone 14 Pro" - name: "iOS 17.0.1" - xcode: "Xcode_15.0" - runsOn: macos-13 + - destination: "platform=iOS Simulator,name=iPhone 16 Pro" + name: "iOS 18" + xcode: "Xcode_16.4" + runsOn: macos-15 params: "-skipMacroValidation" - - destination: "OS=16.4,name=iPhone 14 Pro" - name: "iOS 16.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 - params: "" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Blade-Package" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES ${{ matrix.params }} -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - uses: actions/upload-artifact@v4 @@ -94,18 +85,13 @@ jobs: fail-fast: false matrix: include: - - destination: "OS=17.0,name=Apple TV" - name: "tvOS 17.0" - xcode: "Xcode_15.0" - runsOn: macos-13 + - destination: "platform=tvOS Simulator,name=Apple TV" + name: "tvOS 18" + xcode: "Xcode_16.4" + runsOn: macos-15 params: "-skipMacroValidation" - - destination: "OS=16.4,name=Apple TV" - name: "tvOS 16.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 - params: "" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Blade-Package" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES ${{ matrix.params }} -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov @@ -128,18 +114,13 @@ jobs: fail-fast: false matrix: include: - - destination: "OS=10.0,name=Apple Watch Series 9 (45mm)" - name: "watchOS 10.0" - xcode: "Xcode_15.0" - runsOn: macos-13 + - destination: "platform=watchOS Simulator,name=Apple Watch Series 10 (46mm)" + name: "watchOS 11" + xcode: "Xcode_16.4" + runsOn: macos-15 params: "-skipMacroValidation" - - destination: "OS=9.4,name=Apple Watch Series 8 (45mm)" - name: "watchOS 9.4" - xcode: "Xcode_14.3.1" - runsOn: macos-13 - params: "" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: xcodebuild test -scheme "Blade-Package" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES ${{ matrix.params }} -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1 - name: Upload coverage reports to Codecov @@ -162,22 +143,23 @@ jobs: fail-fast: false matrix: include: - - name: "Xcode 15" - xcode: "Xcode_15.0" - runsOn: macos-13 - - name: "Xcode 14" - xcode: "Xcode_14.3.1" - runsOn: macos-13 + - name: "Xcode 16" + xcode: "Xcode_16.4" + runsOn: macos-15 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - name: Toolchain versions + run: | + swift --version + xcodebuild -version - name: ${{ matrix.name }} run: | - swift build -c release --target "Blade" - swift build -c release --target "BladeTCA" + swift build --target "Blade" + swift build --target "BladeTCA" merge-test-reports: needs: [iOS, macOS, watchOS, tvOS] - runs-on: macos-13 + runs-on: macos-15 steps: - name: Download artifacts uses: actions/download-artifact@v4 @@ -192,14 +174,11 @@ jobs: discover-typos: name: Discover Typos - runs-on: macOS-12 - env: - DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Discover typos run: | - export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin" python3 -m pip install --upgrade pip python3 -m pip install codespell codespell --ignore-words-list="hart,inout,msdos,sur" --skip="./.build/*,./.git/*"