From fe3eb5ab91b0056d4dada657e00182018f45dbbb Mon Sep 17 00:00:00 2001 From: Ulrik Sverdrup Date: Sat, 9 Mar 2024 16:13:11 +0100 Subject: [PATCH 1/2] ci: Setup so that most checks run in merge queue only --- .github/workflows/merge-check.yml | 52 ------------------------------- .github/workflows/pr-check.yml | 46 ++++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 53 deletions(-) delete mode 100644 .github/workflows/merge-check.yml diff --git a/.github/workflows/merge-check.yml b/.github/workflows/merge-check.yml deleted file mode 100644 index 87c6de597..000000000 --- a/.github/workflows/merge-check.yml +++ /dev/null @@ -1,52 +0,0 @@ -on: - merge_group: - -name: Merge Queue Check - -env: - CARGO_TERM_COLOR: always - HOST: x86_64-unknown-linux-gnu - FEATURES: "test docs" - RUSTFLAGS: "-D warnings" - -jobs: - tests: - runs-on: ubuntu-latest - strategy: - matrix: - rust: - - stable - - beta - - nightly - - 1.51.0 # MSRV - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ matrix.rust }} - - uses: Swatinem/rust-cache@v2 - - name: Install openblas - run: sudo apt-get install libopenblas-dev gfortran - - run: ./scripts/all-tests.sh "$FEATURES" ${{ matrix.rust }} - - cross_test: - runs-on: ubuntu-latest - strategy: - matrix: - include: - - rust: stable - target: powerpc-unknown-linux-gnu - - rust: stable - target: i686-unknown-linux-gnu - - steps: - - uses: actions/checkout@v4 - - uses: dtolnay/rust-toolchain@master - with: - toolchain: ${{ matrix.rust }} - targets: ${{ matrix.target }} - - uses: Swatinem/rust-cache@v2 - - name: Install cross - run: cargo install cross - - run: ./scripts/cross-tests.sh "docs" ${{ matrix.rust }} ${{ matrix.target }} diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 78760d306..76abf49fd 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -2,10 +2,12 @@ on: pull_request: merge_group: -name: PR Check +name: CI Check env: CARGO_TERM_COLOR: always + HOST: x86_64-unknown-linux-gnu + FEATURES: "test docs" RUSTFLAGS: "-D warnings" jobs: @@ -23,3 +25,45 @@ jobs: components: clippy - uses: Swatinem/rust-cache@v2 - run: cargo clippy --features docs + tests: + if: ${{ github.event_name == 'merge_group' }} + runs-on: ubuntu-latest + strategy: + matrix: + rust: + - stable + - beta + - nightly + - 1.51.0 # MSRV + + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.rust }} + - uses: Swatinem/rust-cache@v2 + - name: Install openblas + run: sudo apt-get install libopenblas-dev gfortran + - run: ./scripts/all-tests.sh "$FEATURES" ${{ matrix.rust }} + + cross_test: + if: ${{ github.event_name == 'merge_group' }} + runs-on: ubuntu-latest + strategy: + matrix: + include: + - rust: stable + target: powerpc-unknown-linux-gnu + - rust: stable + target: i686-unknown-linux-gnu + + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{ matrix.rust }} + targets: ${{ matrix.target }} + - uses: Swatinem/rust-cache@v2 + - name: Install cross + run: cargo install cross + - run: ./scripts/cross-tests.sh "docs" ${{ matrix.rust }} ${{ matrix.target }} From 909ec76b683d1cec9850df3f4f1a66ba4284a0bb Mon Sep 17 00:00:00 2001 From: Ulrik Sverdrup Date: Sat, 9 Mar 2024 17:19:39 +0100 Subject: [PATCH 2/2] ci: Adopt conclusion job that summarizes ci status Originally contributed by @messense in pyo3, copied their solution with thanks. --- .github/workflows/{pr-check.yml => ci.yaml} | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) rename .github/workflows/{pr-check.yml => ci.yaml} (75%) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/ci.yaml similarity index 75% rename from .github/workflows/pr-check.yml rename to .github/workflows/ci.yaml index 76abf49fd..c49a85a38 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/ci.yaml @@ -2,7 +2,7 @@ on: pull_request: merge_group: -name: CI Check +name: Continuous integration env: CARGO_TERM_COLOR: always @@ -36,6 +36,7 @@ jobs: - nightly - 1.51.0 # MSRV + name: tests/${{ matrix.rust }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master @@ -57,6 +58,7 @@ jobs: - rust: stable target: i686-unknown-linux-gnu + name: cross_test/${{ matrix.target }}/${{ matrix.rust }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@master @@ -67,3 +69,19 @@ jobs: - name: Install cross run: cargo install cross - run: ./scripts/cross-tests.sh "docs" ${{ matrix.rust }} ${{ matrix.target }} + + conclusion: + needs: + - clippy + - tests + - cross_test + if: always() + runs-on: ubuntu-latest + steps: + - name: Result + run: | + jq -C <<< "${needs}" + # Check if all needs were successful or skipped. + "$(jq -r 'all(.result as $result | (["success", "skipped"] | contains([$result])))' <<< "${needs}")" + env: + needs: ${{ toJson(needs) }}