on: push: branches: - master - staging - trying pull_request: name: CI jobs: tests: runs-on: ubuntu-latest strategy: matrix: rust: - stable - beta steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.rust }} override: true components: rustfmt, clippy - uses: actions-rs/cargo@v1 with: command: build # --all-targets ensures that we also build tests args: --all-features --all-targets - uses: actions-rs/cargo@v1 with: command: test - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check - uses: actions-rs/cargo@v1 with: command: clippy args: --all-targets -- -D warnings # Reduced build for the Minimum Supported Rust Version. It does not include the lints as some of # them are out-of-date and result in false positives on the codebase, e.g. mutex_atomic. msrv: name: MSRV runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: "1.51" override: true - uses: actions-rs/cargo@v1 with: command: test miri: name: Miri runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: nightly override: true components: miri, rust-src - uses: actions-rs/cargo@v1 with: command: miri args: test