1name: CI 2 3on: 4 push: 5 pull_request: 6 schedule: [cron: "40 1 * * *"] 7 8jobs: 9 test: 10 name: Rust ${{matrix.rust}} 11 runs-on: ubuntu-latest 12 strategy: 13 fail-fast: false 14 matrix: 15 rust: [nightly, beta, stable] 16 steps: 17 - uses: actions/checkout@v2 18 - uses: dtolnay/rust-toolchain@master 19 with: 20 toolchain: ${{matrix.rust}} 21 - run: cargo test 22 - run: cargo test --features small 23 - run: cargo build --tests --features no-panic --release 24 if: matrix.rust == 'nightly' 25 26 msrv: 27 name: Rust 1.36.0 28 runs-on: ubuntu-latest 29 steps: 30 - uses: actions/checkout@v2 31 - uses: dtolnay/rust-toolchain@1.36.0 32 - run: cargo build 33 - run: cargo build --features small 34 35 miri: 36 name: Miri 37 runs-on: ubuntu-latest 38 steps: 39 - uses: actions/checkout@v2 40 - uses: dtolnay/rust-toolchain@nightly 41 with: 42 components: miri 43 - run: cargo miri test 44 env: 45 MIRIFLAGS: "-Zmiri-tag-raw-pointers" 46 47 clippy: 48 name: Clippy 49 runs-on: ubuntu-latest 50 if: github.event_name != 'pull_request' 51 steps: 52 - uses: actions/checkout@v2 53 - uses: dtolnay/rust-toolchain@clippy 54 - run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic 55 56 outdated: 57 name: Outdated 58 runs-on: ubuntu-latest 59 if: github.event_name != 'pull_request' 60 steps: 61 - uses: actions/checkout@v2 62 - uses: dtolnay/install@cargo-outdated 63 - run: cargo outdated --exit-code 1 64