name: Rust on: push: branches: [ main ] pull_request: branches: [ main ] env: CARGO_TERM_COLOR: always jobs: miri: name: "Miri" runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Miri run: | rustup toolchain install nightly --component miri rustup override set nightly cargo miri setup - name: Test (default) with Miri run: MIRIFLAGS=-Zmiri-strict-provenance cargo miri test - name: Test (default) with Miri + Tree Borrows run: MIRIFLAGS="-Zmiri-strict-provenance -Zmiri-tree-borrows" cargo miri test # AutoThinVec needs tree borrows. - name: Test (gecko-ffi) with Miri run: MIRIFLAGS="-Zmiri-strict-provenance -Zmiri-tree-borrows" cargo miri test --features=gecko-ffi - name: Test (unstable features) with Miri run: MIRIFLAGS=-Zmiri-strict-provenance cargo miri test --features=unstable build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Build run: cargo build --verbose - name: Build (malloc_size_of) run: cargo build --features=malloc_size_of --verbose - name: Run tests run: cargo test --verbose - name: Run tests run: cargo test --verbose - name: Run tests (serde) run: cargo test --features=serde --verbose - name: Run tests (gecko-ffi) run: cargo test --tests --features=gecko-ffi --verbose - name: Run tests (no_std) run: cargo test --tests --no-default-features --verbose msrv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: 1.53 override: true - run: cargo +1.53 check fmt: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal components: rustfmt override: true - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal components: clippy override: true - uses: actions-rs/clippy-check@v1 env: PWD: ${{ env.GITHUB_WORKSPACE }} with: token: ${{ secrets.GITHUB_TOKEN }} args: --workspace --tests --examples docs: runs-on: ubuntu-latest env: RUSTDOCFLAGS: -Dwarnings steps: - uses: actions/checkout@v2 - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal components: rust-docs override: true - uses: swatinem/rust-cache@v1 - uses: actions-rs/cargo@v1 with: command: doc args: --workspace --no-deps