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: [beta, stable, 1.36.0]
16        include:
17          - rust: nightly
18            rustflags: --cfg thiserror_nightly_testing
19    steps:
20      - uses: actions/checkout@v2
21      - uses: dtolnay/rust-toolchain@master
22        with:
23          toolchain: ${{matrix.rust}}
24          components: rust-src
25      - run: cargo test --all
26        env:
27          RUSTFLAGS: ${{matrix.rustflags}}
28
29  msrv:
30    name: Rust 1.31.0
31    runs-on: ubuntu-latest
32    steps:
33      - uses: actions/checkout@v2
34      - uses: dtolnay/rust-toolchain@1.31.0
35      - run: cargo check
36
37  clippy:
38    name: Clippy
39    runs-on: ubuntu-latest
40    if: github.event_name != 'pull_request'
41    steps:
42      - uses: actions/checkout@v2
43      - uses: dtolnay/rust-toolchain@clippy
44      - run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic
45
46  outdated:
47    name: Outdated
48    runs-on: ubuntu-latest
49    if: github.event_name != 'pull_request'
50    steps:
51      - uses: actions/checkout@v2
52      - run: cargo outdated --exit-code 1
53