-
-
Notifications
You must be signed in to change notification settings - Fork 83
133 lines (126 loc) · 4.05 KB
/
test.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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
on: [push, pull_request]
name: CI tests
jobs:
build:
name: Build project
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: setup_rust
with:
components: "rustfmt, clippy"
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: "cargo-base-${{ steps.setup_rust.outputs.cachekey }}-${{ hashFiles('**/Cargo.lock') }}"
restore-keys: |
cargo-base-${{ steps.setup_rust.outputs.cachekey }}
- run: cargo build
lint:
name: Run lints
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: setup_rust
with:
components: "rustfmt, clippy"
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: "cargo-lint-${{ steps.setup_rust.outputs.cachekey }}-${{ hashFiles('**/Cargo.lock') }}"
restore-keys: |
cargo-lint-${{ steps.setup_rust.outputs.cachekey }}
cargo-base-${{ steps.setup_rust.outputs.cachekey }}
fail-on-cache-miss: true
- run: cargo fmt --all -- --check
- run: cargo check
- run: cargo clippy -- -D warnings
test-linux:
name: Test on Linux
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: setup_rust
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: "cargo-test-${{ steps.setup_rust.outputs.cachekey }}-${{ hashFiles('**/Cargo.lock') }}"
restore-keys: |
cargo-test-${{ steps.setup_rust.outputs.cachekey }}
cargo-base-${{ steps.setup_rust.outputs.cachekey }}
fail-on-cache-miss: true
- run: cargo test
test-windows:
name: Test on Windows
runs-on: windows-latest
needs: build
steps:
- run: git config --system core.autocrlf false && git config --system core.eol lf
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: setup_rust
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: "cargo-windows-${{ steps.setup_rust.outputs.cachekey }}-${{ hashFiles('**/Cargo.lock') }}"
restore-keys: |
cargo-windows-${{ steps.setup_rust.outputs.cachekey }}
cargo-base-${{ steps.setup_rust.outputs.cachekey }}
fail-on-cache-miss: true
- run: cargo test
coverage:
name: Code coverage
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
id: setup_rust
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: "cargo-coverage-${{ steps.setup_rust.outputs.cachekey }}-${{ hashFiles('**/Cargo.lock') }}"
restore-keys: |
cargo-coverage-${{ steps.setup_rust.outputs.cachekey }}
cargo-base-${{ steps.setup_rust.outputs.cachekey }}
fail-on-cache-miss: true
- uses: actions-rs/[email protected]
with:
# Constrained by https://github.com/actions-rs/tarpaulin/pull/23
version: "0.22.0"
args: "--ignore-tests"
out-type: "Html"
- uses: actions/upload-artifact@v3
with:
name: tarpaulin-report
path: tarpaulin-report.html