-
Notifications
You must be signed in to change notification settings - Fork 2
158 lines (143 loc) · 4.13 KB
/
rust.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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
name: CI
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
env:
CARGO_TERM_COLOR: always
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Format
run: cargo fmt --check
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Check all feature combinations
run: cargo check-all-features
clippy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Clippy
run: cargo clippy -- -D warnings
test_codec:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Test all feature combinations
run: cargo test-all-features --n-chunks 3 --chunk 1
test_common:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Test all feature combinations
run: cargo test-all-features --n-chunks 3 --chunk 2
test_macro:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Test all feature combinations
run: cargo test-all-features --n-chunks 3 --chunk 3
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Build normal feature combinations
run: cargo build-all-features
- name: Build binary
run: cargo build --features binary
- name: Build binary with GUI
run: cargo build --features gui
doc:
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings
RUSTDOCFLAGS: --cfg docsrs
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- name: Document
run: cargo +nightly doc --features macro,std,serde,rkyv --no-deps
coverage:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools
- name: cargo install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: cargo generate-lockfile
if: hashFiles('Cargo.lock') == ''
run: cargo generate-lockfile
- name: cargo llvm-cov
run: cargo llvm-cov --locked -F macro --lcov --output-path lcov.info
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
fail_ci_if_error: true
semver-checks:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: taiki-e/install-action@v2
with:
tool: cargo-semver-checks
- name: Verify semver compatibility
run: cargo semver-checks
beta_test_codec:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@beta
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Test the codec crate on rust beta
run: cargo test-all-features --n-chunks 3 --chunk 1
beta_test_common:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@beta
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Test the common crate on rust beta
run: cargo test-all-features --n-chunks 3 --chunk 2
beta_test_macro:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@beta
- uses: taiki-e/install-action@v2
with:
tool: cargo-all-features
- name: Test the macro crate on rust beta
run: cargo test-all-features --n-chunks 3 --chunk 3