40
40
- os : ubuntu-latest
41
41
- os : macos-latest
42
42
- os : windows-latest
43
- - os : ubuntu-latest
44
- target : aarch64-unknown-linux-gnu
43
+ - os : ubuntu-24.04-arm
45
44
- os : ubuntu-latest
46
45
target : armv7-unknown-linux-gnueabihf
47
46
- os : ubuntu-latest
@@ -51,18 +50,19 @@ jobs:
51
50
runs-on : ${{ matrix.os }}
52
51
timeout-minutes : 60
53
52
steps :
53
+ # https://github.com/orgs/community/discussions/148648#discussioncomment-11867019
54
+ - name : Workaround for AArch64 Linux runner bug
55
+ run : for var in PATH XDG_CONFIG_HOME; do sed -Ee "s/^/${var}=/" -e 's/(runner)admin/\1/g' <<< "${!var}"; done | tee -a -- "${GITHUB_ENV}"
56
+ if : endsWith(matrix.os, '-arm')
54
57
- uses : taiki-e/checkout-action@v1
55
58
- name : Install Rust
56
- # --no-self-update is necessary because the windows environment cannot self-update rustup.exe.
57
- run : rustup update nightly --no-self-update && rustup default nightly
59
+ uses : taiki-e/github-actions/install-rust@nightly
58
60
- uses : taiki-e/setup-cross-toolchain-action@v1
59
61
with :
60
62
target : ${{ matrix.target }}
61
63
if : matrix.target != ''
62
64
- run : cargo test --workspace --all-features $DOCTEST_XCOMPILE
63
65
- run : cargo test --workspace --all-features --release $DOCTEST_XCOMPILE
64
- # TODO: https://github.com/rust-lang/futures-rs/issues/2451
65
- if : matrix.target != 'aarch64-unknown-linux-gnu'
66
66
67
67
core-msrv :
68
68
name : cargo +${{ matrix.rust }} build (futures-{core, io, sink})
77
77
steps :
78
78
- uses : taiki-e/checkout-action@v1
79
79
- name : Install Rust
80
- run : rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
80
+ uses : taiki-e/github-actions/install-rust@main
81
+ with :
82
+ toolchain : ${{ matrix.rust }}
81
83
# cargo does not support for --features/--no-default-features with workspace, so use cargo-hack instead.
82
84
# Refs: cargo#3620, cargo#4106, cargo#4463, cargo#4753, cargo#5015, cargo#5364, cargo#6195
83
85
- name : Install cargo-hack
@@ -110,7 +112,9 @@ jobs:
110
112
steps :
111
113
- uses : taiki-e/checkout-action@v1
112
114
- name : Install Rust
113
- run : rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
115
+ uses : taiki-e/github-actions/install-rust@main
116
+ with :
117
+ toolchain : ${{ matrix.rust }}
114
118
- name : Install cargo-hack
115
119
uses : taiki-e/install-action@cargo-hack
116
120
# remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
@@ -143,7 +147,9 @@ jobs:
143
147
steps :
144
148
- uses : taiki-e/checkout-action@v1
145
149
- name : Install Rust
146
- run : rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }}
150
+ uses : taiki-e/github-actions/install-rust@main
151
+ with :
152
+ toolchain : ${{ matrix.rust }}
147
153
- name : Install cargo-hack
148
154
uses : taiki-e/install-action@cargo-hack
149
155
- run : cargo hack build --workspace --no-dev-deps
@@ -156,7 +162,7 @@ jobs:
156
162
steps :
157
163
- uses : taiki-e/checkout-action@v1
158
164
- name : Install Rust
159
- run : rustup update nightly && rustup default nightly
165
+ uses : taiki-e/github-actions/install-rust@ nightly
160
166
- name : Install cargo-hack
161
167
uses : taiki-e/install-action@cargo-hack
162
168
- name : Install cargo-minimal-versions
@@ -178,8 +184,9 @@ jobs:
178
184
steps :
179
185
- uses : taiki-e/checkout-action@v1
180
186
- name : Install Rust
181
- run : rustup update nightly && rustup default nightly
182
- - run : rustup target add ${{ matrix.target }}
187
+ uses : taiki-e/github-actions/install-rust@nightly
188
+ with :
189
+ target : ${{ matrix.target }}
183
190
- name : Install cargo-hack
184
191
uses : taiki-e/install-action@cargo-hack
185
192
# remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
@@ -211,7 +218,7 @@ jobs:
211
218
steps :
212
219
- uses : taiki-e/checkout-action@v1
213
220
- name : Install Rust
214
- run : rustup update nightly && rustup default nightly
221
+ uses : taiki-e/github-actions/install-rust@ nightly
215
222
- run : cargo bench --workspace
216
223
- run : cargo bench --manifest-path futures-util/Cargo.toml --features=bilock,unstable
217
224
@@ -222,7 +229,7 @@ jobs:
222
229
steps :
223
230
- uses : taiki-e/checkout-action@v1
224
231
- name : Install Rust
225
- run : rustup update nightly && rustup default nightly
232
+ uses : taiki-e/github-actions/install-rust@ nightly
226
233
- name : Install cargo-hack
227
234
uses : taiki-e/install-action@cargo-hack
228
235
# Check each specified feature works properly
@@ -245,7 +252,9 @@ jobs:
245
252
steps :
246
253
- uses : taiki-e/checkout-action@v1
247
254
- name : Install Rust
248
- run : rustup toolchain install nightly --component miri && rustup default nightly
255
+ uses : taiki-e/github-actions/install-rust@nightly
256
+ with :
257
+ component : miri
249
258
- run : cargo miri test --workspace --all-features -- --skip panic_on_drop_fut
250
259
env :
251
260
MIRIFLAGS : -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation
@@ -272,7 +281,9 @@ jobs:
272
281
steps :
273
282
- uses : taiki-e/checkout-action@v1
274
283
- name : Install Rust
275
- run : rustup toolchain install nightly --component rust-src && rustup default nightly
284
+ uses : taiki-e/github-actions/install-rust@nightly
285
+ with :
286
+ component : rust-src
276
287
# https://github.com/google/sanitizers/issues/1716 / https://github.com/actions/runner-images/issues/9491
277
288
- run : sudo sysctl vm.mmap_rnd_bits=28
278
289
# Exclude futures-macro to work around upstream bug since nightly-2024-10-06.
@@ -290,7 +301,9 @@ jobs:
290
301
steps :
291
302
- uses : taiki-e/checkout-action@v1
292
303
- name : Install Rust
293
- run : rustup toolchain install nightly --component clippy && rustup default nightly
304
+ uses : taiki-e/github-actions/install-rust@nightly
305
+ with :
306
+ component : clippy
294
307
- run : cargo clippy --workspace --all-features --all-targets
295
308
296
309
fmt :
@@ -300,7 +313,7 @@ jobs:
300
313
steps :
301
314
- uses : taiki-e/checkout-action@v1
302
315
- name : Install Rust
303
- run : rustup update stable
316
+ uses : taiki-e/github-actions/install-rust@ stable
304
317
- run : cargo fmt --all -- --check
305
318
306
319
docs :
@@ -310,7 +323,7 @@ jobs:
310
323
steps :
311
324
- uses : taiki-e/checkout-action@v1
312
325
- name : Install Rust
313
- run : rustup update nightly && rustup default nightly
326
+ uses : taiki-e/github-actions/install-rust@ nightly
314
327
- run : cargo doc --workspace --no-deps --all-features
315
328
env :
316
329
RUSTDOCFLAGS : ${{ env.RUSTDOCFLAGS }} --cfg docsrs
0 commit comments