-
Notifications
You must be signed in to change notification settings - Fork 58
149 lines (142 loc) · 3.94 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
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
on: [ push, pull_request ]
name: Continuous integration
jobs:
fmt:
name: Basic sanity checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/cargo@v1
name: formatting check
with:
command: fmt
args: --all -- --check
- uses: actions-rs/cargo@v1
name: clippy
with:
command: clippy
args: --all --tests -- -D warnings
check:
name: Check
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: [ stable, nightly ]
use_std: [ y, n ]
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
name: thumbv6m-none-eabi toolchain setup
if: ${{ matrix.use_std == 'y' }}
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
target: thumbv6m-none-eabi
override: true
- uses: actions-rs/toolchain@v1
name: std toolchain setup
if: ${{ matrix.use_std == 'n' }}
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/cargo@v1
name: thumbv6m-none-eabi check
if: ${{ matrix.use_std == 'y' }}
with:
command: check
args: --target thumbv6m-none-eabi --no-default-features
- uses: actions-rs/cargo@v1
name: std check
if: ${{ matrix.use_std == 'n' }}
with:
command: check
build:
name: Build
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: [ stable, nightly ]
use_std: [ y, n ]
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
name: thumbv6m-none-eabi toolchain setup
if: ${{ matrix.use_std == 'y' }}
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
target: thumbv6m-none-eabi
override: true
- uses: actions-rs/toolchain@v1
name: std toolchain setup
if: ${{ matrix.use_std == 'n' }}
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/cargo@v1
name: thumbv6m-none-eabi build
if: ${{ matrix.use_std == 'y' }}
with:
command: build
args: --target thumbv6m-none-eabi --no-default-features
- uses: actions-rs/cargo@v1
name: std build
if: ${{ matrix.use_std == 'n' }}
with:
command: build
- uses: actions-rs/cargo@v1
name: std build examples
if: ${{ matrix.use_std == 'n' }}
with:
command: build
args: --examples
test:
name: Test Suite
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: [ stable, nightly ]
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/cargo@v1
name: std test all
with:
command: test
args: --all --no-fail-fast
doc_check:
name: Doc check
runs-on: ubuntu-latest
strategy:
matrix:
toolchain: [ stable, nightly ]
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- uses: Swatinem/rust-cache@v2
- uses: actions-rs/cargo@v1
name: std doc check
env:
RUSTDOCFLAGS: '-D warnings'
with:
command: doc
args: --all --no-deps --document-private-items