@@ -19,30 +19,48 @@ defaults:
19
19
20
20
jobs :
21
21
test :
22
- name : cargo +${{ matrix.rust }} test (${{ matrix.os }})
22
+ name : cargo test (${{ matrix.os }})
23
23
strategy :
24
+ fail-fast : false
24
25
matrix :
25
- rust :
26
- - nightly
27
26
os :
28
- - ubuntu-latest
29
- - macos-latest
30
- - windows-latest
27
+ - ubuntu-latest
28
+ - macos-latest
29
+ - windows-latest
31
30
runs-on : ${{ matrix.os }}
32
31
steps :
33
32
- uses : actions/checkout@v2
34
33
- name : Install Rust
35
34
# --no-self-update is necessary because the windows environment cannot self-update rustup.exe.
36
- run : rustup update ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }}
35
+ run : rustup update nightly --no-self-update && rustup default nightly
37
36
- run : cargo test --workspace --all-features
38
37
- run : cargo test --workspace --all-features --release
39
38
39
+ cross :
40
+ name : cross test --target ${{ matrix.target }}
41
+ strategy :
42
+ fail-fast : false
43
+ matrix :
44
+ target :
45
+ - i686-unknown-linux-gnu
46
+ - aarch64-unknown-linux-gnu
47
+ runs-on : ubuntu-latest
48
+ steps :
49
+ - uses : actions/checkout@v2
50
+ - name : Install Rust
51
+ run : rustup update nightly && rustup default nightly
52
+ - run : cargo install cross
53
+ - run : cross test --target ${{ matrix.target }} --workspace --all-features
54
+ - run : cross test --target ${{ matrix.target }} --workspace --all-features --release
55
+ # TODO: https://github.com/rust-lang/futures-rs/issues/2451
56
+ if : matrix.target != 'aarch64-unknown-linux-gnu'
57
+
40
58
core-msrv :
41
- name : cargo +${{ matrix.rust }} build (futures-{core, io, sink, task, channel })
59
+ name : cargo +${{ matrix.rust }} build (futures-{core, io, sink, task})
42
60
strategy :
43
61
matrix :
44
62
rust :
45
- # This is the minimum Rust version supported by futures-core, futures-io, futures-sink, futures-task, futures-channel .
63
+ # This is the minimum Rust version supported by futures-core, futures-io, futures-sink, futures-task.
46
64
# When updating this, the reminder to update the minimum required version in .clippy.toml.
47
65
- 1.36.0
48
66
runs-on : ubuntu-latest
@@ -58,22 +76,22 @@ jobs:
58
76
# Check no-default-features
59
77
- run : |
60
78
cargo hack build --workspace --ignore-private --no-default-features \
61
- --exclude futures --exclude futures-util --exclude futures-macro --exclude futures-executor --exclude futures-test
79
+ --exclude futures --exclude futures-util --exclude futures-macro --exclude futures-executor --exclude futures-channel --exclude futures- test
62
80
# Check alloc feature
63
81
- run : |
64
82
cargo hack build --workspace --ignore-private --no-default-features --features alloc --ignore-unknown-features \
65
- --exclude futures --exclude futures-util --exclude futures-macro --exclude futures-executor --exclude futures-test
83
+ --exclude futures --exclude futures-util --exclude futures-macro --exclude futures-executor --exclude futures-channel --exclude futures- test
66
84
# Check std feature
67
85
- run : |
68
86
cargo hack build --workspace --ignore-private --no-default-features --features std \
69
- --exclude futures --exclude futures-util --exclude futures-macro --exclude futures-executor --exclude futures-test
87
+ --exclude futures --exclude futures-util --exclude futures-macro --exclude futures-executor --exclude futures-channel --exclude futures- test
70
88
71
89
util-msrv :
72
90
name : cargo +${{ matrix.rust }} build
73
91
strategy :
74
92
matrix :
75
93
rust :
76
- # This is the minimum Rust version supported by futures, futures-util, futures-macro, futures-executor, futures-test.
94
+ # This is the minimum Rust version supported by futures, futures-util, futures-macro, futures-executor, futures-channel, futures- test.
77
95
# When updating this, the reminder to update the minimum required version in README.md.
78
96
- 1.41.0
79
97
runs-on : ubuntu-latest
@@ -100,6 +118,7 @@ jobs:
100
118
build :
101
119
name : cargo +${{ matrix.rust }} build
102
120
strategy :
121
+ fail-fast : false
103
122
matrix :
104
123
rust :
105
124
- stable
@@ -130,10 +149,13 @@ jobs:
130
149
no-std :
131
150
name : cargo build --target ${{ matrix.target }}
132
151
strategy :
152
+ fail-fast : false
133
153
matrix :
154
+ # thumbv7m-none-eabi supports atomic CAS.
155
+ # thumbv6m-none-eabi supports atomic, but not atomic CAS.
134
156
target :
135
- - thumbv6m-none-eabi
136
157
- thumbv7m-none-eabi
158
+ - thumbv6m-none-eabi
137
159
runs-on : ubuntu-latest
138
160
steps :
139
161
- uses : actions/checkout@v2
@@ -210,6 +232,7 @@ jobs:
210
232
san :
211
233
name : cargo test -Z sanitizer=${{ matrix.sanitizer }}
212
234
strategy :
235
+ fail-fast : false
213
236
matrix :
214
237
sanitizer :
215
238
- address
@@ -233,21 +256,17 @@ jobs:
233
256
runs-on : ubuntu-latest
234
257
steps :
235
258
- uses : actions/checkout@v2
236
- - name : Install Rust and Clippy
237
- run : |
238
- toolchain=nightly-$(curl -sSf https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu/clippy)
239
- rustup set profile minimal
240
- rustup default "$toolchain"
241
- rustup component add clippy
259
+ - name : Install Rust
260
+ run : rustup toolchain install nightly --component clippy && rustup default nightly
242
261
- run : cargo clippy --workspace --all-features --all-targets
243
262
244
263
fmt :
245
264
runs-on : ubuntu-latest
246
265
steps :
247
266
- uses : actions/checkout@v2
248
267
- name : Install Rust
249
- run : rustup update stable && rustup default stable
250
- - run : tools/ fmt.sh
268
+ run : rustup update stable
269
+ - run : cargo fmt --all -- --check
251
270
252
271
docs :
253
272
name : cargo doc
0 commit comments