1on: [push, pull_request]
2
3name: Rust
4
5jobs:
6  check:
7    name: Check
8    runs-on: ubuntu-latest
9    steps:
10      - name: Get required packages
11        run: sudo apt-get install libsensors-dev libssl-dev libpulse-dev libnotmuch-dev
12      - uses: actions/checkout@v2
13      - uses: actions-rs/toolchain@v1
14        with:
15          profile: minimal
16          toolchain: stable
17          override: true
18      - uses: actions-rs/cargo@v1
19        with:
20          command: check
21
22  test:
23    name: Test Suite
24    runs-on: ubuntu-latest
25    steps:
26      - name: Get required packages
27        run: sudo apt-get install libsensors-dev libssl-dev libpulse-dev libnotmuch-dev
28      - uses: actions/checkout@v2
29      - uses: actions-rs/toolchain@v1
30        with:
31          profile: minimal
32          toolchain: stable
33          override: true
34      - uses: actions-rs/cargo@v1
35        with:
36          command: test
37
38  fmt:
39    name: Rustfmt
40    runs-on: ubuntu-latest
41    steps:
42      - name: Get required packages
43        run: sudo apt-get install libsensors-dev libssl-dev libpulse-dev libnotmuch-dev
44      - uses: actions/checkout@v2
45      - uses: actions-rs/toolchain@v1
46        with:
47          profile: minimal
48          toolchain: stable
49          override: true
50      - run: rustup component add rustfmt
51      - uses: actions-rs/cargo@v1
52        with:
53          command: fmt
54          args: --all -- --check
55
56  clippy:
57    name: Clippy
58    runs-on: ubuntu-latest
59    steps:
60      - name: Get required packages
61        run: sudo apt-get install libsensors-dev libssl-dev libpulse-dev libnotmuch-dev
62      - uses: actions/checkout@v2
63      - uses: actions-rs/toolchain@v1
64        with:
65          profile: minimal
66          toolchain: stable
67          override: true
68      - run: rustup component add clippy
69      - uses: actions-rs/cargo@v1
70        with:
71          command: clippy
72          args: -- -D warnings
73