name: CI on: pull_request: push: branches: [ main ] env: RUSTFLAGS: -Dwarnings jobs: check: name: Check runs-on: ubuntu-latest strategy: fail-fast: false matrix: rust: - stable - 1.64.0 steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@master with: toolchain: ${{ matrix.rust }} - name: Run cargo check run: cargo check test: name: Test suite runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable - name: Run cargo test run: cargo test loom-dry-run: name: Loom dry run runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable - name: Dry-run cargo test (Loom) run: cargo test --no-run --tests env: RUSTFLAGS: --cfg asynchronix_loom miri: name: Miri runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@nightly with: components: miri - name: Run cargo miri tests run: cargo miri test --tests --lib env: MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 - name: Run cargo miri example1 run: cargo miri run --example espresso_machine env: MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 - name: Run cargo miri example2 run: cargo miri run --example power_supply env: MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 - name: Run cargo miri example3 run: cargo miri run --example stepper_motor env: MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-disable-isolation -Zmiri-num-cpus=4 lints: name: Lints runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable - name: Run cargo fmt run: cargo fmt --all -- --check - name: Run cargo clippy run: cargo clippy docs: name: Docs runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v3 - name: Install toolchain uses: dtolnay/rust-toolchain@stable - name: Run cargo doc run: cargo doc --no-deps --document-private-items