145 lines (114 loc) · 3.49 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
name: Rust
on: [push, pull_request]
env:
CARGO_TERM_COLOR: always
permissions:
contents: read
jobs:
check:
name: "Tests"
runs-on: ubuntu-latest
strategy:
matrix:
channel:
- stable
- beta
- nightly
steps:
- name: Checkout repository
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust Toolchain
run: rustup default ${{ matrix.channel }}
- name: Install cargo-hack
run: cargo install cargo-hack
- name: Powerset
run: cargo hack test --feature-powerset --lib --optional-deps --depth 3 --skip "compiler_builtins core rustc-dep-of-std"
- name: Docs
run: cargo doc --features example_generated
- name: Smoke test
run: cargo run --manifest-path tests/smoke-test/Cargo.toml
check-minimal:
name: Check minimal versions
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust Toolchain
run: rustup default nightly
- name: Check minimal versions
run: cargo check --all --features serde,arbitrary,bytemuck,std,example_generated --all-targets -Z minimal-versions
benches:
name: Benches
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust toolchain
run: rustup default nightly
- name: Default features
run: cargo bench --no-run
ui:
name: UI
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust toolchain
run: rustup default beta
- name: Compile pass
run: cargo test pass
- name: Compile fail
run: cargo test fail
msrv:
name: MSRV
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install tombl
run: cargo install tombl
- name: Smoke test
run: |
eval $(tombl -e msrv=package.rust-version Cargo.toml)
rustup update $msrv
cd ./tests/smoke-test
cargo +$msrv build
miri:
name: "Miri"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install Miri
run: |
rustup toolchain install nightly --component miri
cargo +nightly miri setup
- name: Default features
run: cargo +nightly miri test
- name: BE
run: cargo +nightly miri test --target s390x-unknown-linux-gnu
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Clippy
run: |
rustup update beta
rustup component add clippy --toolchain beta
- name: Default features
run: |
cd ./tests/smoke-test
cargo +beta clippy
embedded:
name: Build (embedded)
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@8e5e7e5ab8b370d6c329ec480221332ada57f0ab
- name: Install Rust toolchain
run: |
rustup default nightly
rustup target add thumbv6m-none-eabi
- name: Default features
run: cargo build -Z avoid-dev-deps --features example_generated --target thumbv6m-none-eabi