@@ -127,59 +127,41 @@ jobs:
127127 - run : cargo update -Z minimal-versions
128128 - run : cargo build --workspace --all-features
129129
130- thumbv6m :
131- name : cargo build --target thumbv6m-none-eabi
130+ no-std :
131+ name : cargo build --target ${{ matrix.target }}
132+ strategy :
133+ matrix :
134+ target :
135+ - thumbv6m-none-eabi
136+ - thumbv7m-none-eabi
132137 runs-on : ubuntu-latest
133138 steps :
134139 - uses : actions/checkout@v2
135140 - name : Install Rust
136141 run : rustup update nightly && rustup default nightly
137- - run : rustup target add thumbv6m-none-eabi
142+ - run : rustup target add ${{ matrix.target }}
138143 - run : cargo install cargo-hack
139144 # remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
140145 - run : cargo hack --remove-dev-deps --workspace
141146 - run : |
142- cargo build --manifest-path futures/Cargo.toml \
143- --target thumbv6m-none-eabi \
144- --no-default-features \
145- --features unstable,cfg-target-has-atomic
146- - run : |
147- cargo build --manifest-path futures/Cargo.toml \
148- --target thumbv6m-none-eabi \
149- --no-default-features \
150- --features alloc,unstable,cfg-target-has-atomic
151- - run : |
152- cargo build --manifest-path futures/Cargo.toml \
153- --target thumbv6m-none-eabi \
154- --no-default-features \
155- --features async-await,unstable,cfg-target-has-atomic
156-
157- thumbv7m :
158- name : cargo build --target thumbv7m-none-eabi
159- runs-on : ubuntu-latest
160- steps :
161- - uses : actions/checkout@v2
162- - name : Install Rust
163- run : rustup update nightly && rustup default nightly
164- - run : rustup target add thumbv7m-none-eabi
165- - run : cargo install cargo-hack
166- # remove dev-dependencies to avoid https://github.com/rust-lang/cargo/issues/4866
167- - run : cargo hack --remove-dev-deps --workspace
147+ cargo hack build --manifest-path futures/tests/no-std/Cargo.toml \
148+ --each-feature --optional-deps \
149+ --target ${{ matrix.target }}
168150 - run : |
169- cargo build --manifest-path futures/Cargo.toml \
170- --target thumbv7m-none-eabi \
151+ cargo hack build --workspace --ignore-private \
152+ --exclude futures-test --exclude futures-macro \
171153 --no-default-features \
172- --features unstable,cfg- target-has-atomic
154+ --target ${{ matrix. target }}
173155 - run : |
174- cargo build --manifest-path futures/Cargo.toml \
175- --target thumbv7m-none-eabi \
176- --no-default-features \
177- --features alloc
156+ cargo hack build --workspace --ignore-private \
157+ --exclude futures-test --exclude futures-macro \
158+ --no-default-features --features alloc --ignore-unknown-features \
159+ --target ${{ matrix.target }}
178160 - run : |
179- cargo build --manifest-path futures/Cargo.toml \
180- --target thumbv7m-none-eabi \
181- --no-default-features \
182- --features async-await
161+ cargo hack build --workspace --ignore-private \
162+ --exclude futures-test --exclude futures-macro \
163+ --no-default-features --features async-await,alloc --ignore-unknown-features \
164+ --target ${{ matrix.target }}
183165
184166 bench :
185167 name : cargo bench
@@ -212,6 +194,19 @@ jobs:
212194 --workspace --exclude futures-test \
213195 --features unstable --ignore-unknown-features
214196
197+ # When this job failed, run ci/no_atomic_cas.sh and commit result changes.
198+ # TODO(taiki-e): Ideally, this should be automated using a bot that creates
199+ # PR when failed, but there is no bandwidth to implement it
200+ # right now...
201+ codegen :
202+ runs-on : ubuntu-latest
203+ steps :
204+ - uses : actions/checkout@v2
205+ - name : Install Rust
206+ run : rustup update nightly && rustup default nightly
207+ - run : ci/no_atomic_cas.sh
208+ - run : git diff --exit-code
209+
215210 san :
216211 name : cargo test -Z sanitizer=${{ matrix.sanitizer }}
217212 strategy :
0 commit comments