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  msrv:
24    name: Rust 1.31.0
25    runs-on: ubuntu-latest
26    steps:
27      - uses: actions/checkout@v2
28      - uses: dtolnay/rust-toolchain@1.31.0
29      - run: cargo test --test test_item
30
31  minimal:
32    name: Minimal versions
33    runs-on: ubuntu-latest
34    steps:
35      - uses: actions/checkout@v2
36      - uses: dtolnay/rust-toolchain@nightly
37      - run: cargo -Z minimal-versions generate-lockfile
38      - run: cargo check --locked
39
40  clippy:
41    name: Clippy
42    runs-on: ubuntu-latest
43    steps:
44      - uses: actions/checkout@v2
45      - uses: dtolnay/rust-toolchain@clippy
46      - run: cargo clippy -- -Dclippy::all -Dclippy::pedantic
47