ci: rustup --no-self-update and reuqire MSRV checks

Pass `--no-self-update` to `rustup`, which is typical for CI. Also add
the MSRV job to `success` so GitHub won't merge without it passing.
This commit is contained in:
Trevor Gross 2024-10-27 23:41:29 -05:00
parent 99b8dfad4f
commit a3fd7732f0

View file

@ -29,12 +29,40 @@ jobs:
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly && rustup default nightly
run: rustup update nightly --no-self-update && rustup default nightly
- run: rustup target add ${{ matrix.target }}
- run: rustup target add x86_64-unknown-linux-musl
- run: cargo generate-lockfile
- run: ./ci/run-docker.sh ${{ matrix.target }}
wasm:
name: WebAssembly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly --no-self-update && rustup default nightly
- run: rustup target add wasm32-unknown-unknown
- run: cargo build --target wasm32-unknown-unknown
cb:
name: "The compiler-builtins crate works"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly --no-self-update && rustup default nightly
- run: cargo build -p cb
benchmarks:
name: Benchmarks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly --no-self-update && rustup default nightly
- run: cargo bench --all
msrv:
name: Check MSRV
runs-on: ubuntu-latest
@ -47,54 +75,29 @@ jobs:
echo "MSRV: $msrv"
echo "MSRV=$msrv" >> "$GITHUB_ENV"
- name: Install Rust
run: rustup update "$MSRV" && rustup default "$MSRV"
run: rustup update "$MSRV" --no-self-update && rustup default "$MSRV"
- run: cargo build -p libm
rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly && rustup default nightly && rustup component add rustfmt
run: |
rustup update nightly --no-self-update
rustup default nightly
rustup component add rustfmt
- run: cargo fmt -- --check
wasm:
name: WebAssembly
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly && rustup default nightly
- run: rustup target add wasm32-unknown-unknown
- run: cargo build --target wasm32-unknown-unknown
cb:
name: "The compiler-builtins crate works"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly && rustup default nightly
- run: cargo build -p cb
benchmarks:
name: Benchmarks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Install Rust
run: rustup update nightly && rustup default nightly
- run: cargo bench --all
success:
needs:
- docker
- rustfmt
- wasm
- cb
- benchmarks
- msrv
- rustfmt
runs-on: ubuntu-latest
# GitHub branch protection is exceedingly silly and treats "jobs skipped because a dependency
# failed" as success. So we have to do some contortions to ensure the job fails if any of its