name: CI-integ-test on: workflow_dispatch: pull_request: push: branches: - 'main' - 'release/**' - 'dev/**' # Allow running tests on dev branches without a PR paths-ignore: - 'dist/**' permissions: contents: read jobs: build-distribution: runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: Build and upload distribution if: ${{ needs.determine-suite.outputs.suite != 'full' }} uses: ./.github/actions/build-dist caching-integ-tests: needs: build-distribution uses: ./.github/workflows/suite-integ-test-caching.yml concurrency: group: CI-integ-test-caching-${{ github.ref }} cancel-in-progress: false with: skip-dist: false secrets: inherit other-integ-tests: permissions: contents: write needs: caching-integ-tests uses: ./.github/workflows/suite-integ-test-other.yml concurrency: group: CI-integ-test-other-${{ github.ref }} cancel-in-progress: false with: skip-dist: false secrets: inherit dependency-submission-integ-tests: permissions: contents: write needs: other-integ-tests uses: ./.github/workflows/suite-integ-test-dependency-submission.yml concurrency: group: CI-integ-test-dependency-submission-${{ github.ref }} cancel-in-progress: false with: skip-dist: false secrets: inherit # Aggregate gate: a single check that succeeds only when all integ-test jobs succeed. # Require this one check in branch protection instead of every fanned-out matrix job. integ-test-success: if: ${{ always() }} needs: - build-distribution - caching-integ-tests - other-integ-tests - dependency-submission-integ-tests runs-on: ubuntu-latest steps: - name: Fail if any integ-test job failed or was cancelled if: ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} run: | echo "One or more integ-test jobs did not succeed:" echo " build-distribution: ${{ needs.build-distribution.result }}" echo " caching-integ-tests: ${{ needs.caching-integ-tests.result }}" echo " other-integ-tests: ${{ needs.other-integ-tests.result }}" echo " dependency-submission-integ-tests: ${{ needs.dependency-submission-integ-tests.result }}" exit 1