Remove UnitGroup
addition (#171)
#520
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Rust - Continuous integration | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
concurrency: | |
# Allow one run at a time for PRs, but multiple for other invocations | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
env: | |
RUSTFLAGS: -Dwarnings | |
CARGO_TERM_COLOR: always | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
with: | |
components: clippy, rustfmt | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: lint | |
- name: Install cargo-workspaces | |
run: cargo install cargo-workspaces | |
- name: Check rustfmt | |
run: cargo fmt --all -- --check | |
- name: Check clippy | |
run: cargo ws exec cargo clippy --all-features --all-targets | |
- name: Check clippy (No features) | |
run: cargo ws exec cargo clippy --no-default-features --all-targets | |
msrv: | |
name: MSRV | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
# Get the rust_version from the Cargo.toml | |
- name: Get rust_version | |
id: rust_version | |
run: echo "rust_version=$(grep '^rust-version' Cargo.toml -m 1 | cut -d' ' -f3 | tr -d '"')" >> $GITHUB_OUTPUT | |
- name: Install Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
toolchain: ${{ steps.rust_version.outputs.rust_version }} | |
- name: Check compilation | |
run: cargo check --all-features --all-targets | |
build-test: | |
name: Test (${{ matrix.rust.name }}, ${{ matrix.os }}) | |
strategy: | |
matrix: | |
rust: | |
# TODO: possibly add the MSRV here | |
- { version: stable, name: stable } | |
os: [ubuntu-latest, macos-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@master | |
with: | |
toolchain: ${{ matrix.rust.version }} | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: build-test | |
- name: Cargo build | |
run: cargo build --quiet | |
- name: Test | |
run: cargo test | |
- name: Cargo build --all-features | |
run: cargo build --quiet --all-features | |
- name: Test --all-features | |
run: cargo test --all-features | |
docs: | |
name: Documentation | |
runs-on: ubuntu-latest | |
env: | |
RUSTDOCFLAGS: -D warnings | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dtolnay/rust-toolchain@stable | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
key: docs | |
- name: Generate documentation | |
run: cargo doc -v --document-private-items --all-features | |