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, 1.45.0] 16 steps: 17 - uses: actions/checkout@v2 18 - uses: dtolnay/rust-toolchain@master 19 with: 20 toolchain: ${{matrix.rust}} 21 - run: cargo test 22 23 mintest: 24 name: Rust 1.34.0 25 runs-on: ubuntu-latest 26 steps: 27 - uses: actions/checkout@v2 28 - uses: dtolnay/rust-toolchain@1.34.0 29 - run: cargo test --test test_item 30 31 msrv: 32 name: Rust 1.31.0 33 runs-on: ubuntu-latest 34 steps: 35 - uses: actions/checkout@v2 36 - uses: dtolnay/rust-toolchain@1.31.0 37 - run: cargo check 38 39 minimal: 40 name: Minimal versions 41 runs-on: ubuntu-latest 42 steps: 43 - uses: actions/checkout@v2 44 - uses: dtolnay/rust-toolchain@nightly 45 - run: cargo -Z minimal-versions generate-lockfile 46 - run: cargo check --locked 47 48 clippy: 49 name: Clippy 50 runs-on: ubuntu-latest 51 if: github.event_name != 'pull_request' 52 steps: 53 - uses: actions/checkout@v2 54 - uses: dtolnay/rust-toolchain@clippy 55 - run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic 56 57 outdated: 58 name: Outdated 59 runs-on: ubuntu-latest 60 if: github.event_name != 'pull_request' 61 steps: 62 - uses: actions/checkout@v2 63 - run: cargo outdated --exit-code 1 64