Skip to content

Commit e9337a1

Browse files
committed
1 parent 951d353 commit e9337a1

File tree

1 file changed

+32
-19
lines changed

1 file changed

+32
-19
lines changed

.github/workflows/ci.yml

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ jobs:
4040
- os: ubuntu-latest
4141
- os: macos-latest
4242
- os: windows-latest
43-
- os: ubuntu-latest
44-
target: aarch64-unknown-linux-gnu
43+
- os: ubuntu-24.04-arm
4544
- os: ubuntu-latest
4645
target: armv7-unknown-linux-gnueabihf
4746
- os: ubuntu-latest
@@ -51,18 +50,19 @@ jobs:
5150
runs-on: ${{ matrix.os }}
5251
timeout-minutes: 60
5352
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')
5457
- uses: taiki-e/checkout-action@v1
5558
- 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
5860
- uses: taiki-e/setup-cross-toolchain-action@v1
5961
with:
6062
target: ${{ matrix.target }}
6163
if: matrix.target != ''
6264
- run: cargo test --workspace --all-features $DOCTEST_XCOMPILE
6365
- 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'
6666

6767
core-msrv:
6868
name: cargo +${{ matrix.rust }} build (futures-{core, io, sink})
@@ -77,7 +77,9 @@ jobs:
7777
steps:
7878
- uses: taiki-e/checkout-action@v1
7979
- 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 }}
8183
# cargo does not support for --features/--no-default-features with workspace, so use cargo-hack instead.
8284
# Refs: cargo#3620, cargo#4106, cargo#4463, cargo#4753, cargo#5015, cargo#5364, cargo#6195
8385
- name: Install cargo-hack
@@ -110,7 +112,9 @@ jobs:
110112
steps:
111113
- uses: taiki-e/checkout-action@v1
112114
- 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 }}
114118
- name: Install cargo-hack
115119
uses: taiki-e/install-action@cargo-hack
116120
# remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
@@ -143,7 +147,9 @@ jobs:
143147
steps:
144148
- uses: taiki-e/checkout-action@v1
145149
- 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 }}
147153
- name: Install cargo-hack
148154
uses: taiki-e/install-action@cargo-hack
149155
- run: cargo hack build --workspace --no-dev-deps
@@ -156,7 +162,7 @@ jobs:
156162
steps:
157163
- uses: taiki-e/checkout-action@v1
158164
- name: Install Rust
159-
run: rustup update nightly && rustup default nightly
165+
uses: taiki-e/github-actions/install-rust@nightly
160166
- name: Install cargo-hack
161167
uses: taiki-e/install-action@cargo-hack
162168
- name: Install cargo-minimal-versions
@@ -178,8 +184,9 @@ jobs:
178184
steps:
179185
- uses: taiki-e/checkout-action@v1
180186
- 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 }}
183190
- name: Install cargo-hack
184191
uses: taiki-e/install-action@cargo-hack
185192
# remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
@@ -211,7 +218,7 @@ jobs:
211218
steps:
212219
- uses: taiki-e/checkout-action@v1
213220
- name: Install Rust
214-
run: rustup update nightly && rustup default nightly
221+
uses: taiki-e/github-actions/install-rust@nightly
215222
- run: cargo bench --workspace
216223
- run: cargo bench --manifest-path futures-util/Cargo.toml --features=bilock,unstable
217224

@@ -222,7 +229,7 @@ jobs:
222229
steps:
223230
- uses: taiki-e/checkout-action@v1
224231
- name: Install Rust
225-
run: rustup update nightly && rustup default nightly
232+
uses: taiki-e/github-actions/install-rust@nightly
226233
- name: Install cargo-hack
227234
uses: taiki-e/install-action@cargo-hack
228235
# Check each specified feature works properly
@@ -245,7 +252,9 @@ jobs:
245252
steps:
246253
- uses: taiki-e/checkout-action@v1
247254
- 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
249258
- run: cargo miri test --workspace --all-features -- --skip panic_on_drop_fut
250259
env:
251260
MIRIFLAGS: -Zmiri-strict-provenance -Zmiri-symbolic-alignment-check -Zmiri-disable-isolation
@@ -272,7 +281,9 @@ jobs:
272281
steps:
273282
- uses: taiki-e/checkout-action@v1
274283
- 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
276287
# https://github.com/google/sanitizers/issues/1716 / https://github.com/actions/runner-images/issues/9491
277288
- run: sudo sysctl vm.mmap_rnd_bits=28
278289
# Exclude futures-macro to work around upstream bug since nightly-2024-10-06.
@@ -290,7 +301,9 @@ jobs:
290301
steps:
291302
- uses: taiki-e/checkout-action@v1
292303
- 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
294307
- run: cargo clippy --workspace --all-features --all-targets
295308

296309
fmt:
@@ -300,7 +313,7 @@ jobs:
300313
steps:
301314
- uses: taiki-e/checkout-action@v1
302315
- name: Install Rust
303-
run: rustup update stable
316+
uses: taiki-e/github-actions/install-rust@stable
304317
- run: cargo fmt --all -- --check
305318

306319
docs:
@@ -310,7 +323,7 @@ jobs:
310323
steps:
311324
- uses: taiki-e/checkout-action@v1
312325
- name: Install Rust
313-
run: rustup update nightly && rustup default nightly
326+
uses: taiki-e/github-actions/install-rust@nightly
314327
- run: cargo doc --workspace --no-deps --all-features
315328
env:
316329
RUSTDOCFLAGS: ${{ env.RUSTDOCFLAGS }} --cfg docsrs

0 commit comments

Comments
 (0)