-
Notifications
You must be signed in to change notification settings - Fork 25
158 lines (133 loc) Β· 3.41 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
150
151
152
153
154
155
156
157
158
name: CI
on:
push:
branches:
- master
pull_request:
jobs:
unit_tests:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: cargo test
uses: actions-rs/cargo@v1
with:
command: test
- name: cargo test --features serde
uses: actions-rs/cargo@v1
with:
command: test
args: --features serde
- name: cargo test --features regex
uses: actions-rs/cargo@v1
with:
command: test
args: --features regex
- name: cargo test --features new_unchecked
uses: actions-rs/cargo@v1
with:
command: test
args: --features new_unchecked
- name: cargo test --features arbitrary
uses: actions-rs/cargo@v1
with:
command: test
args: --features arbitrary
- name: cargo test --features schemars08
uses: actions-rs/cargo@v1
with:
command: test
args: --features schemars08
- name: cargo test --all-features
uses: actions-rs/cargo@v1
with:
command: test
args: --all-features
doctests:
name: Doctests
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Run doctests for nutype
run: |
cd nutype
cargo test --doc --all-features
- name: Run doctests for nutype_macros
run: |
cd nutype_macros
cargo test --doc --all-features
rustfmt:
name: Rustfmt
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: rustfmt
- name: Check formatting
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
components: clippy
- name: Clippy Check
uses: actions-rs/cargo@v1
with:
command: clippy
args: -- -D warnings
examples:
name: Examples
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: thumbv7m-none-eabi # Needed for no_std_example
- name: Run examples
run: |
set -euxo pipefail
ROOT_DIR=$(pwd)
for EXAMPLE in `ls examples`; do
cd $ROOT_DIR/examples/$EXAMPLE;
if [[ "$EXAMPLE" == "no_std_example" ]]
then
cargo build
else
cargo run
fi
done
typos:
name: Typos
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: typos-action
uses: crate-ci/[email protected]