-
Notifications
You must be signed in to change notification settings - Fork 122
144 lines (121 loc) · 3.26 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
name: CI
on: [push, pull_request]
jobs:
test:
name: Test Rust ${{ matrix.toolchain }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}-latest
strategy:
matrix:
toolchain: [stable, nightly, 1.65.0]
os: [ubuntu, macOS, windows]
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.toolchain }}
override: true
- name: Remove .lock file
run: rm Cargo.lock
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --features testing-helpers
test_features_separate:
name: Test features
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Install tomljson
run: go install github.com/pelletier/go-toml/cmd/tomljson@latest
- name: Test
run: |
export GOBIN=$HOME/go/bin
export PATH=$PATH:$GOBIN
ci/test_all_features.sh
doc_test:
name: Doc tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
override: true
- name: Install cargo-external-doc
uses: actions-rs/cargo@v1
with:
command: install
args: --git https://github.com/JelteF/cargo-external-doc --force
- name: Build library
uses: actions-rs/cargo@v1
with:
command: build
- name: Run cargo-external-doc
uses: actions-rs/cargo@v1
with:
command: external-doc
clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: clippy
override: true
- name: Clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-features -- -D warnings
rustfmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: rustfmt
override: true
- name: rustfmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check
msrv:
# TODO: Use MSRV once it understands new `Cargo.lock` format.
# name: MSRV
name: Minimal crates versions
strategy:
fail-fast: false
matrix:
# msrv: ["1.36.0"]
msrv: [stable]
os: [ubuntu, macOS, windows]
runs-on: ${{ matrix.os }}-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.msrv }}
override: true
- name: Install minimal dependecies versions
run: cargo +nightly update -Z minimal-versions
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
args: --features testing-helpers