diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8f589536..14f5d9d0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,10 @@ name: Build on: + pull_request: push: branches: - - 'main' + - 'issue/**' - 'chore/**' - 'docs/**' - 'feat/**' @@ -22,23 +23,23 @@ jobs: test: name: Run ${{ matrix.platform }} on ${{ matrix.host }} runs-on: ${{ matrix.host }} - + strategy: fail-fast: true matrix: - host: [macos-11, macos-12] + host: [macos-13, macos-14] platform: [ios, macos] include: - platform: ios scheme: "PactSwift-iOS" - destination: "platform=iOS Simulator,name=iPhone 12 Pro" + destination: "platform=iOS Simulator,name=iPhone 15 Pro" - platform: macos scheme: "PactSwift-macOS" destination: "arch=x86_64" - - host: macos-11 - xcode: 13.2.1 - - host: macos-12 - xcode: 14.0.1 + - host: macos-13 + xcode: 14.3.1 + - host: macos-14 + xcode: 15.3 env: SCHEME: ${{ matrix.scheme }} @@ -67,72 +68,3 @@ jobs: run: | swift build swift test -c release - - test_linux: - name: Run on Ubuntu - runs-on: ubuntu-latest - - strategy: - fail-fast: true - - concurrency: - group: test-linux-${{ github.ref }} - cancel-in-progress: true - - steps: - - uses: fwal/setup-swift@v1 - - name: Get swift version - run: swift --version - - - name: "⬇️ Checkout repository" - uses: actions/checkout@v2 - - - name: Install Protoc - uses: arduino/setup-protoc@v1 - - - name: "♼ Cache rust binaries" - uses: actions/cache@v3 - with: - path: | - ${{ env.RUST_TARGET_PATH }} - key: build-${{ runner.os }}-rust-pactswift-${{ hashFiles('**/Package.resolved') }} - restore-keys: | - build-${{ runner.os }}-rust-pactswift - build-${{ runner.os }}-rust- - - - name: "⚗️ Build and Test" - run: | - Scripts/build_test_linux - - test_carthage: - name: "Verify for Carthage" - runs-on: macos-12 - - strategy: - fail-fast: true - - concurrency: - group: test-carthage-${{ github.ref }} - cancel-in-progress: true - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Use Xcode 13.4.1 - run: sudo xcode-select -switch /Applications/Xcode_13.4.1.app - - - name: Carthage build - run: | - carthage build --use-xcframeworks --no-skip-current - - after_success: - needs: [test, test_carthage, test_linux] - name: Build demo projects - if: github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - - steps: - - name: Build demo projects - run: | - curl -X POST https://api.github.com/repos/surpher/pact-swift-examples/dispatches -H 'Accept: application/vnd.github.everest-preview+json' -u ${{ secrets.PACT_SWIFT_TOKEN }} --data '{"event_type":"PactSwift - ${{ github.event.head_commit.message }}"}' diff --git a/.github/workflows/build_pr.yml b/.github/workflows/build_pr.yml deleted file mode 100644 index a7563230..00000000 --- a/.github/workflows/build_pr.yml +++ /dev/null @@ -1,110 +0,0 @@ -name: Build PR - -on: - pull_request: - branches: - - 'main' - -env: - RUST_TARGET_PATH: pact-reference - -jobs: - test: - name: Run ${{ matrix.platform }} on ${{ matrix.host }} - runs-on: ${{ matrix.host }} - - strategy: - fail-fast: true - matrix: - host: [macos-11, macos-12] - platform: [ios, macos] - include: - - platform: ios - scheme: "PactSwift-iOS" - destination: "platform=iOS Simulator,name=iPhone 12 Pro" - - platform: macos - scheme: "PactSwift-macOS" - destination: "arch=x86_64" - - env: - SCHEME: ${{ matrix.scheme }} - DESTINATION: ${{ matrix.destination }} - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Prepare Tools - run: | - Scripts/prepare_build_tools - - - name: Run tests (Xcode) - run: | - set -o pipefail && xcodebuild clean test -project PactSwift.xcodeproj -scheme "$SCHEME" -destination "$DESTINATION" GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES | xcbeautify - - - name: Run tests (CLI - Swift Package) - run: | - swift build - swift test -c release - - test_linux: - name: Run on Ubuntu - runs-on: ubuntu-latest - - strategy: - fail-fast: true - - steps: - - uses: fwal/setup-swift@v1 - - name: Get swift version - run: swift --version - - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Install Protoc - uses: arduino/setup-protoc@v1 - - - name: "♼ Cache rust binaries" - uses: actions/cache@v3 - with: - path: | - ${{ env.RUST_TARGET_PATH }} - key: build-${{ runner.os }}-rust-pactswift-${{ hashFiles('**/Package.resolved') }} - restore-keys: | - build-${{ runner.os }}-rust-pactswift - build-${{ runner.os }}-rust- - - - name: "⚗️ Build and Test" - run: | - Scripts/build_test_linux - - test_carthage: - name: Verify for Carthage - runs-on: macos-12 - - strategy: - fail-fast: true - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Use Xcode 13.4.1 - run: sudo xcode-select -switch /Applications/Xcode_13.4.1.app - - - name: Carthage build - run: | - carthage build --use-xcframeworks --no-skip-current - - after_success: - needs: [test, test_carthage, test_linux] - name: Build demo projects - if: github.ref == 'refs/heads/main' - runs-on: ubuntu-latest - - steps: - - - name: Build demo projects - run: | - curl -X POST https://api.github.com/repos/surpher/pact-swift-examples/dispatches -H 'Accept: application/vnd.github.everest-preview+json' -u ${{ secrets.PACT_SWIFT_TOKEN }} --data '{"event_type":"PactSwift - ${{ github.event.head_commit.message }}"}'