]> git.lizzy.rs Git - bit-set.git/blob - .github/workflows/rust.yml
Add github ci
[bit-set.git] / .github / workflows / rust.yml
1 name: Rust
2
3 on:
4   push:
5     branches: [ master ]
6   pull_request:
7     branches: [ master ]
8
9 env:
10   CARGO_TERM_COLOR: always
11
12 jobs: 
13   build:
14     runs-on: ubuntu-latest
15     steps:
16     - uses: actions/checkout@v2
17     - name: Build
18       run: cargo build --verbose
19     - name: Run tests
20       run: cargo test --verbose
21     - name: Run tests (gecko-ffi)
22       run: cargo test --tests --verbose
23       
24   miri:
25     name: "Miri"
26     runs-on: ubuntu-latest
27     steps:
28       - uses: actions/checkout@v2
29       - name: Install Miri
30         run: |
31           rustup toolchain install nightly --component miri
32           rustup override set nightly
33           cargo miri setup
34       - name: Test with Miri
35         run: MIRIFLAGS=-Zmiri-strict-provenance cargo miri test
36   
37   fmt:
38     runs-on: ubuntu-latest
39     steps:
40       - uses: actions/checkout@v2
41       - uses: actions-rs/toolchain@v1
42         with:
43           toolchain: stable
44           profile: minimal
45           components: rustfmt
46           override: true
47       - uses: actions-rs/cargo@v1
48         with:
49           command: fmt
50           args: --all -- --check
51           
52           
53   clippy:
54     runs-on: ubuntu-latest
55     steps:
56       - uses: actions/checkout@v2
57       - uses: actions-rs/toolchain@v1
58         with:
59             toolchain: stable
60             profile: minimal
61             components: clippy
62             override: true
63       - uses: actions-rs/clippy-check@v1
64         env:
65           PWD: ${{ env.GITHUB_WORKSPACE }}
66         with:
67           token: ${{ secrets.GITHUB_TOKEN }}
68           args: --workspace --tests --examples
69           
70           
71   docs:
72     runs-on: ubuntu-latest
73     env:
74       RUSTDOCFLAGS: -Dwarnings
75     steps:
76       - uses: actions/checkout@v2
77       - uses: actions-rs/toolchain@v1
78         with:
79           toolchain: stable
80           profile: minimal
81           components: rust-docs
82           override: true
83       - uses: swatinem/rust-cache@v1
84       - uses: actions-rs/cargo@v1
85         with:
86           command: doc
87           args: --workspace --no-deps