diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cd68efc6..025aa858 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,7 +1,6 @@ -# https://help.github.com/en/github/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions#jobsjob_idname name: Build -on: [pull_request, push, workflow_dispatch] +on: [workflow_call] jobs: carthage: @@ -12,4 +11,23 @@ jobs: - uses: AckeeCZ/load-xcode-version@1.1.0 - name: Build run: carthage build --no-skip-current --cache-builds --use-xcframeworks - \ No newline at end of file + - uses: actions/cache@v3 + with: + path: Carthage + key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }} + restore-keys: | + ${{ runner.os }}-carthage- + spm: + name: SPM + runs-on: macos-13 + steps: + - uses: actions/checkout@v4 + - uses: AckeeCZ/load-xcode-version@1.1.0 + - name: Build + run: swift build -c release + - uses: actions/cache@v3 + with: + path: .build + key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} + restore-keys: | + ${{ runner.os }}-spm- \ No newline at end of file diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml new file mode 100644 index 00000000..2041e407 --- /dev/null +++ b/.github/workflows/pr.yml @@ -0,0 +1,9 @@ +name: PR + +on: [pull_request] + +jobs: + tests: + uses: ./.github/workflows/tests.yml + + \ No newline at end of file diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a69e5b5f..f2a8f3dc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,25 +1,48 @@ name: Tests -on: [pull_request, push] +on: [workflow_call] jobs: tests: - name: Run tests + name: Tests runs-on: macos-13 + env: + IOS_DEVICE: iPhone 15 Pro Max steps: - uses: actions/checkout@v4 - uses: AckeeCZ/load-xcode-version@1.1.0 - - name: Run iOS tests - run: set -o pipefail && xcodebuild test -scheme ACKategories-iOS -resultBundlePath Tests-iOS.xcresult -sdk iphonesimulator -destination "platform=iOS Simulator,name=iPhone 15 Pro Max,OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty + - name: iOS tests + run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-iOS.xcresult -sdk iphonesimulator -destination "platform=iOS Simulator,name=$IOS_DEVICE,OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty - uses: actions/upload-artifact@v3 if: failure() with: name: Tests-iOS.xcresult path: Tests-iOS.xcresult - - name: Run macOS tests - run: set -o pipefail && xcodebuild test -scheme ACKategoriesCore -resultBundlePath Tests-macOS.xcresult -destination 'platform=OS X,arch=x86_64' | xcpretty + - name: iOS responder tests + run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-iOS-Responder.xcresult -sdk iphonesimulator -destination "platform=iOS Simulator,name=$IOS_DEVICE,OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: Tests-iOS-Responder.xcresult + path: Tests-iOS-Responder.xcresult + - name: macOS tests + run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-macOS.xcresult -destination 'platform=OS X,arch=x86_64' | xcpretty - uses: actions/upload-artifact@v3 if: failure() with: name: Tests-macOS.xcresult - path: Tests-macOS.xcresult \ No newline at end of file + path: Tests-macOS.xcresult + - name: watchOS tests + run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-watchOS.xcresult -sdk watchsimulator -destination "platform=watchOS Simulator,name=Apple Watch Ultra 2 (49mm),OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: Tests-watchOS.xcresult + path: Tests-watchOS.xcresult + - name: tvOS tests + run: set -o pipefail && xcodebuild test -scheme ACKategories -resultBundlePath Tests-tvOS.xcresult -sdk appletvsimulator -destination "platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest" ONLY_ACTIVE_ARCH=YES | xcpretty + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: Tests-tvOS.xcresult + path: Tests-tvOS.xcresult \ No newline at end of file