forked from tikv/raft-rs
-
Notifications
You must be signed in to change notification settings - Fork 0
53 lines (50 loc) · 1.84 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
name: CI
on:
pull_request:
push:
branches:
- master
env:
RUST_BACKTRACE: 1
RUSTFLAGS: "--deny=warnings"
jobs:
build_and_test:
name: Rust ${{ matrix.rust }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
rust: [stable]
include:
- os: ubuntu-latest
rust: nightly
steps:
- uses: actions/checkout@v2
- if: matrix.os == 'ubuntu-latest'
name: Install dependencies (ubuntu-latest)
run: |
sudo apt-get install protobuf-compiler
- if: matrix.os == 'macos-latest'
name: Install dependencies (macos-latest)
run: |
brew install protobuf
- if: matrix.os == 'windows-latest'
name: Install dependencies (windows-latest)
run: |
choco install protoc
- name: setup nightly
if: ${{ matrix.rust == 'nightly' }}
run: rustup default nightly
- name: check format
if: ${{ matrix.rust == 'stable' && matrix.os == 'ubuntu-latest' }}
run: cargo fmt --all -- --check
- name: check clippy
if: ${{ matrix.rust == 'stable' && matrix.os == 'ubuntu-latest' }}
run: cargo clippy --all --all-targets -- -D clippy::all && cargo clippy --no-default-features --features prost-codec -- -D clippy::all
- run: cargo test --all -- --nocapture
# Validate benches still work.
- run: cargo bench --all -- --test
# Because failpoints inject failure in code path, which will affect all concurrently running tests, Hence they need to be synchronized, which make tests slow.
- run: cargo test --tests --features failpoints -- --nocapture
# TODO: There is a bug in protobuf-build that cached size is not supported yet, so do not test harness.
- run: cargo test --no-default-features --features prost-codec -- --nocapture