diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 3be4e8fdc..c5d2d638a 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -7,6 +7,10 @@ on: pull_request: types: [opened, reopened, synchronize] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: soundness: uses: swiftlang/github-workflows/.github/workflows/soundness.yml@main @@ -49,7 +53,7 @@ jobs: strategy: fail-fast: true matrix: - swift_version: ['6.2', '6.3', 'nightly'] + swift_version: ['6.3', 'nightly'] os_version: ['jammy'] jdk_vendor: ['corretto'] container: @@ -75,7 +79,7 @@ jobs: strategy: fail-fast: true matrix: - swift_version: ['6.2', '6.3'] + swift_version: ['6.3'] os_version: ['macos'] jdk_vendor: ['corretto'] env: @@ -143,7 +147,7 @@ jobs: strategy: fail-fast: false matrix: - swift_version: ['6.1.3', '6.2', '6.3', 'nightly'] + swift_version: ['6.1.3', '6.3', 'nightly'] os_version: ['jammy'] jdk_vendor: ['corretto'] container: @@ -167,7 +171,7 @@ jobs: strategy: fail-fast: false matrix: - swift_version: ['6.2.3', '6.3'] + swift_version: ['6.3'] os_version: ['macos'] jdk_vendor: ['corretto'] env: @@ -221,7 +225,7 @@ jobs: strategy: fail-fast: false matrix: - swift_version: ['6.1.3', '6.2', '6.3', 'nightly'] + swift_version: ['6.3'] os_version: ['jammy'] jdk_vendor: ['corretto'] sample_app: [ # TODO: use a reusable-workflow to generate those names @@ -239,6 +243,15 @@ jobs: - uses: actions/checkout@v6 - name: Prepare CI Environment uses: ./.github/actions/prepare_env + - name: Cache sample .build + uses: actions/cache@v4 + continue-on-error: true + with: + path: Samples/${{ matrix.sample_app }}/.build + key: ${{ runner.os }}-swift${{ matrix.swift_version }}-sample-${{ matrix.sample_app }}-${{ hashFiles('Sources/**/*.swift', 'Plugins/**/*.swift', 'Package.swift', 'Package.resolved') }} + restore-keys: | + ${{ runner.os }}-swift${{ matrix.swift_version }}-sample-${{ matrix.sample_app }}- + ${{ runner.os }}-swift${{ matrix.swift_version }}-sample- - name: "Verify sample: ${{ matrix.sample_app }}" run: .github/scripts/validate_sample.sh Samples/${{ matrix.sample_app }} @@ -249,7 +262,7 @@ jobs: strategy: fail-fast: false matrix: - swift_version: ['6.2', '6.3'] # no nightly testing on macOS + swift_version: ['6.3'] # no nightly testing on macOS os_version: ['macos'] jdk_vendor: ['corretto'] sample_app: [ # TODO: use a reusable-workflow to generate those names @@ -269,6 +282,15 @@ jobs: run: ./.github/scripts/install_swiftly.sh env: SWIFT_VERSION: "${{ matrix.swift_version }}" + - name: Cache sample .build + uses: actions/cache@v4 + continue-on-error: true + with: + path: Samples/${{ matrix.sample_app }}/.build + key: ${{ runner.os }}-swift${{ matrix.swift_version }}-sample-${{ matrix.sample_app }}-${{ hashFiles('Sources/**/*.swift', 'Plugins/**/*.swift', 'Package.swift', 'Package.resolved') }} + restore-keys: | + ${{ runner.os }}-swift${{ matrix.swift_version }}-sample-${{ matrix.sample_app }}- + ${{ runner.os }}-swift${{ matrix.swift_version }}-sample- - name: "Verify sample ${{ matrix.sample_app }}" run: .github/scripts/validate_sample.sh Samples/${{ matrix.sample_app }}