diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 711bd8d..74d16b9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,7 +1,7 @@ # 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 +name: main on: push: @@ -39,6 +39,7 @@ concurrency: jobs: swiftlint: + name: SwiftLint runs-on: macos-14 steps: - name: Checkout @@ -51,7 +52,7 @@ jobs: swiftlint lint --quiet | sed -E 's/^(.*):([0-9]+):([0-9]+): (warning|error|[^:]+): (.*)/::\4 title=Lint error,file=\1,line=\2,col=\3::\5\n\1:\2:\3/' ### ref: https://github.com/Alamofire/Alamofire/blob/master/.github/workflows/ci.yml - macOS: + test_macOS: name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} env: @@ -63,49 +64,31 @@ jobs: include: - xcode: "Xcode_15.4" runsOn: macos-14 - name: "macOS 14, Xcode 15.4, Swift 5.10" + name: "Test: macOS 14, Xcode 15.4, Swift 5.10" testPlan: "macOS" outputFilter: xcbeautify --renderer github-actions - xcode: "Xcode_15.2" runsOn: macos-14 - name: "macOS 14, Xcode 15.2, Swift 5.9.2" + name: "Test: macOS 14, Xcode 15.2, Swift 5.9.2" testPlan: "macOS" outputFilter: xcbeautify --renderer github-actions - # - xcode: "Xcode_15.1" - # runsOn: macOS-14 - # name: "macOS 14, Xcode 15.1, Swift 5.9.1" - # testPlan: "macOS" - # outputFilter: xcbeautify --renderer github-actions - # - xcode: "Xcode_15.0.1" - # runsOn: macOS-14 - # name: "macOS 14, Xcode 15.0.1, Swift 5.9.0" - # testPlan: "macOS" - # outputFilter: xcbeautify --renderer github-actions - xcode: "Xcode_14.3.1" runsOn: macOS-13 - name: "macOS 13, Xcode 14.3.1, Swift 5.8.0" + name: "Test: macOS 13, Xcode 14.3.1, Swift 5.8.0" testPlan: "macOS" outputFilter: xcbeautify --renderer github-actions - xcode: "Xcode_14.2" runsOn: macOS-12 - name: "macOS 12, Xcode 14.2, Swift 5.7.2" + name: "Test: macOS 12, Xcode 14.2, Swift 5.7.2" testPlan: "macOS" outputFilter: xcpretty - # - xcode: "Xcode_14.1" - # runsOn: macOS-12 - # name: "macOS 12, Xcode 14.1, Swift 5.7.1" - # testPlan: "macOS" - # outputFilter: xcpretty steps: - uses: actions/checkout@v4 - name: ${{ matrix.name }} run: |- - set -o pipefail - # brew install alamofire/alamofire/firewalk || brew upgrade alamofire/alamofire/firewalk - # firewalk & - env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-macOS" -destination "platform=macOS" clean test | ${{ matrix.outputFilter }} + set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-macOS" -destination "platform=macOS" clean test | ${{ matrix.outputFilter }} needs: swiftlint - # Catalyst: + # test_Catalyst: # name: ${{ matrix.name }} # runs-on: ${{ matrix.runsOn }} # env: @@ -116,27 +99,16 @@ jobs: # matrix: # include: # - xcode: "Xcode_15.4" - # name: "Catalyst 15.4" - # runsOn: macos-14 - # - xcode: "Xcode_15.2" - # name: "Catalyst 15.2" + # name: "Test: Catalyst 15.4" # runsOn: macos-14 - # - xcode: "Xcode_15.1" - # name: "Catalyst 15.1" - # runsOn: macOS-14 - # - xcode: "Xcode_15.0.1" - # name: "Catalyst 15.0" - # runsOn: macOS-14 - # - xcode: "Xcode_14.3.1" + # - xcode: "Test: Xcode_14.3.1" # name: "Catalyst 14.3.1" # runsOn: macOS-13 # steps: # - uses: actions/checkout@v4 - # - name: Install Firewalk - # run: brew install alamofire/alamofire/firewalk || brew upgrade alamofire/alamofire/firewalk && firewalk & # - name: Catalyst # run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-iOS" -destination "platform=macOS" clean test 2>&1 | xcbeautify --renderer github-actions - iOS: + test_iOS: name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} env: @@ -147,33 +119,21 @@ jobs: matrix: include: - destination: "OS=17.5,name=iPhone 15 Pro" - name: "iOS 17.6" + name: "Test: iOS 17.6" testPlan: "iOS" xcode: "Xcode_15.4" runsOn: macos-14 - # - destination: "OS=17.2,name=iPhone 15 Pro" - # name: "iOS 17.2" - # testPlan: "iOS" - # xcode: "Xcode_15.2" - # runsOn: macos-14 - # - destination: "OS=17.0,name=iPhone 15 Pro" - # name: "iOS 17.0" - # testPlan: "iOS" - # xcode: "Xcode_15.0.1" - # runsOn: macOS-14 - destination: "OS=16.4,name=iPhone 14 Pro" - name: "iOS 16.4" + name: "Test: iOS 16.4" testPlan: "iOS" xcode: "Xcode_14.3.1" runsOn: macOS-13 steps: - uses: actions/checkout@v4 - # - name: Install Firewalk - # run: brew install alamofire/alamofire/firewalk || brew upgrade alamofire/alamofire/firewalk && firewalk & - name: ${{ matrix.name }} run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-iOS" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions needs: swiftlint - tvOS: + test_tvOS: name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} env: @@ -184,33 +144,21 @@ jobs: matrix: include: - destination: "OS=17.5,name=Apple TV" - name: "tvOS 17.5" + name: "Test: tvOS 17.5" testPlan: "tvOS" xcode: "Xcode_15.4" runsOn: macos-14 - # - destination: "OS=17.2,name=Apple TV" - # name: "tvOS 17.2" - # testPlan: "tvOS" - # xcode: "Xcode_15.2" - # runsOn: macos-14 - # - destination: "OS=17.0,name=Apple TV" - # name: "tvOS 17.0" - # testPlan: "tvOS" - # xcode: "Xcode_15.0.1" - # runsOn: macOS-14 - destination: "OS=16.4,name=Apple TV" - name: "tvOS 16.4" + name: "Test: tvOS 16.4" testPlan: "tvOS" xcode: "Xcode_14.3.1" runsOn: macOS-13 steps: - uses: actions/checkout@v4 - # - name: Install Firewalk - # run: brew install alamofire/alamofire/firewalk || brew upgrade alamofire/alamofire/firewalk && firewalk & - name: ${{ matrix.name }} run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-tvOS" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions needs: swiftlint - # visionOS: + # test_visionOS: # name: ${{ matrix.name }} # runs-on: ${{ matrix.runsOn }} # env: @@ -221,24 +169,16 @@ jobs: # matrix: # include: # - destination: "OS=1.2,name=Apple Vision Pro" - # name: "visionOS 1.2" + # name: "Test: visionOS 1.2" # testPlan: "visionOS" # scheme: "Punycode visionOS" # xcode: "Xcode_15.4" # runsOn: macos-14 - # - destination: "OS=1.0,name=Apple Vision Pro" - # name: "visionOS 1.0" - # testPlan: "visionOS" - # scheme: "Punycode visionOS" - # xcode: "Xcode_15.2" - # runsOn: macos-14 # steps: # - uses: actions/checkout@v4 - # - name: Install Firewalk - # run: brew install alamofire/alamofire/firewalk || brew upgrade alamofire/alamofire/firewalk && firewalk & # - name: ${{ matrix.name }} # run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions - # watchOS: + # test_watchOS: # name: ${{ matrix.name }} # runs-on: ${{ matrix.runsOn }} # env: @@ -249,31 +189,20 @@ jobs: # matrix: # include: # - destination: "OS=10.5,name=Apple Watch Series 9 (45mm)" - # name: "watchOS 10.5" + # name: "Test: watchOS 10.5" # testPlan: "watchOS" # xcode: "Xcode_15.4" # runsOn: macos-14 - # - destination: "OS=10.2,name=Apple Watch Series 9 (45mm)" - # name: "watchOS 10.2" - # testPlan: "watchOS" - # xcode: "Xcode_15.2" - # runsOn: macos-14 - # - destination: "OS=10.0,name=Apple Watch Series 9 (45mm)" - # name: "watchOS 10.0" - # testPlan: "watchOS" - # xcode: "Xcode_15.0.1" - # runsOn: macOS-14 # - destination: "OS=9.4,name=Apple Watch Series 8 (45mm)" - # name: "watchOS 9.4" + # name: "Test: watchOS 9.4" # testPlan: "watchOS" # xcode: "Xcode_14.3.1" # runsOn: macOS-13 # steps: # - uses: actions/checkout@v4 - # - name: Install Firewalk - # run: brew update && brew install alamofire/alamofire/firewalk || brew upgrade alamofire/alamofire/firewalk && firewalk & # - name: ${{ matrix.name }} # run: set -o pipefail && env NSUnbufferedIO=YES xcodebuild -project "Punycode.xcodeproj" -scheme "Punycode-watchOS" -destination "${{ matrix.destination }}" clean test 2>&1 | xcbeautify --renderer github-actions + SPM: name: ${{ matrix.name }} runs-on: ${{ matrix.runsOn }} @@ -286,119 +215,25 @@ jobs: include: - xcode: "Xcode_15.4" runsOn: macOS-14 - name: "macOS 14, SPM 5.10 Test" + name: "SPM: macOS 14, Swift 5.10" outputFilter: xcbeautify --renderer github-actions - xcode: "Xcode_15.2" runsOn: macOS-14 - name: "macOS 14, SPM 5.9.2 Test" + name: "SPM: macOS 14, Swift 5.9.2" outputFilter: xcbeautify --renderer github-actions - # - xcode: "Xcode_15.1" - # runsOn: macOS-14 - # name: "macOS 14, SPM 5.9.1 Test" - # outputFilter: xcbeautify --renderer github-actions - # - xcode: "Xcode_15.0.1" - # runsOn: macOS-14 - # name: "macOS 14, SPM 5.9.0 Test" - # outputFilter: xcbeautify --renderer github-actions - xcode: "Xcode_14.3.1" runsOn: macOS-13 - name: "macOS 13, SPM 5.8.0 Test" + name: "SPM: macOS 13, Swift 5.8.0" outputFilter: xcbeautify --renderer github-actions - xcode: "Xcode_14.2" runsOn: macOS-12 - name: "macOS 12, SPM 5.7.2 Test" + name: "SPM: macOS 12, Swift 5.7.2" outputFilter: xcpretty - # - xcode: "Xcode_14.1" - # runsOn: macOS-12 - # name: "macOS 12, SPM 5.7.1 Test" - # outputFilter: xcpretty steps: - uses: actions/checkout@v4 - # - name: Install Firewalk - # run: brew install alamofire/alamofire/firewalk || brew upgrade alamofire/alamofire/firewalk xcbeautify && firewalk & - name: Test SPM run: swift test -c debug 2>&1 | ${{ matrix.outputFilter }} - needs: swiftlint - - # spm: - # name: Swift ${{ matrix.swift }} - # runs-on: macos-14 - # strategy: - # matrix: - # # swift: ["5.10", "5.9", "5.8", "5.0"] - # swift: ["5.10"] - # steps: - # - name: Setup Swift - # uses: swift-actions/setup-swift@v2 - # with: - # swift-version: ${{ matrix.swift }} - # - name: Get swift version - # run: swift --version - # - name: Checkout - # uses: actions/checkout@v4 - # - name: Build - # run: swift build --disable-sandbox - # - name: Run tests - # run: swift test --disable-sandbox - # needs: swiftlint - - # build: - # name: ${{ matrix.run-config.scheme }} - # runs-on: macos-14 - - # strategy: - # matrix: - # scheme: - # - Punycode-iOS - # - Punycode-tvOS - # - Punycode-macOS - # # destination: - # # - "OS=iOS 18.1,name=iphonesimulator18.1" - # # - "OS=iOS 17.5,name=iphonesimulator17.5" - # # - "OS=iOS 16.4,name=iphonesimulator16.4" - # # - "OS=tvOS 18.0,name=appletvsimulator18.0" - # # - "OS=tvOS 17.5,name=appletvsimulator17.5" - # # - "OS=tvOS 16.4,name=appletvsimulator16.4" - # # - "OS=macOS 15.1,name=macosx15.1" - # # - "OS=macOS 14.5,name=macosx14.5" - # # - "OS=macOS 13.3,name=macosx13.3" - # # - "arch=x86_64" - - # - name: Build and Test - # run: | - # set -o pipefail - # swift -version - # xcrun simctl list - # xcodebuild -version - # xcodebuild -showsdks - # xcodebuild -list - # xcodebuild clean test -project "Punycode.xcodeproj" -scheme ${{ matrix.scheme }} -destination ${{ matrix.destination }} -enableCodeCoverage - - # - name: Upload Coverage - # if: success() && github.event_name == 'push' - # run: bash <(curl -s https://codecov.io/bash) -J 'Punycode' -cF "${{ matrix.scheme }}" - - # spm: - # name: Swift ${{ matrix.swift }} - # runs-on: macos-14 - # strategy: - # matrix: - # # swift: ["5.10", "5.9", "5.8", "5.0"] - # swift: ["5.10"] - # steps: - # - name: Setup Swift - # uses: swift-actions/setup-swift@v2 - # with: - # swift-version: ${{ matrix.swift }} - # - name: Get swift version - # run: swift --version - # - name: Checkout - # uses: actions/checkout@v4 - # - name: Build - # run: swift build --disable-sandbox - # - name: Run tests - # run: swift test --disable-sandbox - # needs: test + needs: [test_macOS, test_iOS, test_tvOS] carthage: runs-on: macos-14