diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5bb781018..4e1cea7fe 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,18 +1,43 @@ -name: test - -on: [push, pull_request] +name: "Test Suite" +on: + push: + pull_request: jobs: test: - runs-on: ubuntu-22.04 + strategy: + matrix: + os: + - ubuntu + - macos + - windows + toolchain: + - stable + - 1.72 + name: cargo test on ${{ matrix.os }} + runs-on: ${{ matrix.os }}-latest + steps: + - uses: actions/checkout@v4 + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: ${{ matrix.toolchain }} + - name: Cargo test + run: cargo test + + # Check formatting with rustfmt + mdbook: + name: test mdBook + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - run: rustup update 1.70 --no-self-update && rustup default 1.70 - - run: cargo build --workspace - - name: test mdBook - # rustdoc doesn't build dependencies, so it needs to run after `cargo build`, - # but its dependency search gets confused if there are multiple copies of any - # dependency in target/debug/deps, so it needs to run before `cargo test` et al. - # clutter target/debug/deps with multiple copies of things. - run: for file in $(find mdbook -name '*.md' | sort); do rustdoc --test $file -L ./target/debug/deps; done - - run: cargo test --workspace + - uses: actions/checkout@v4 + # Ensure rustfmt is installed and setup problem matcher + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + components: rustfmt + - run: cargo build + - name: test mdBook + # rustdoc doesn't build dependencies, so it needs to run after `cargo build`, + # but its dependency search gets confused if there are multiple copies of any + # dependency in target/debug/deps, so it needs to run before `cargo test` et al. + # clutter target/debug/deps with multiple copies of things. + run: for file in $(find mdbook -name '*.md' | sort); do rustdoc --test $file -L ./target/debug/deps; done