2626 - doc
2727 - check-external-types
2828 - udeps
29+ - minimal-versions
30+ - semver
2931 steps :
3032 - run : exit 0
3133
4345
4446 - name : cargo fmt --check
4547 run : |
46- if ! rustfmt --check --edition 2021 $(git ls-files '*.rs'); then
47- printf "Please run \`rustfmt --edition 2021 \$(git ls-files '*.rs')\` to fix rustfmt errors.\nSee CONTRIBUTING.md for more details.\n" >&2
48+ if ! rustfmt --check --edition 2018 $(git ls-files '*.rs'); then
49+ printf "Please run \`rustfmt --edition 2018 \$(git ls-files '*.rs')\` to fix rustfmt errors.\nSee CONTRIBUTING.md for more details.\n" >&2
4850 exit 1
4951 fi
5052
8385 with :
8486 toolchain : ${{ matrix.rust }}
8587
88+ - uses : Swatinem/rust-cache@v2
89+
8690 - name : Test
8791 run : cargo test ${{ matrix.features }}
8892
@@ -109,6 +113,8 @@ jobs:
109113 with :
110114 toolchain : ${{ steps.msrv.outputs.version }}
111115
116+ - uses : Swatinem/rust-cache@v2
117+
112118 - name : Check
113119 run : cargo check --features full
114120
@@ -126,6 +132,8 @@ jobs:
126132 with :
127133 components : miri
128134
135+ - uses : Swatinem/rust-cache@v2
136+
129137 - name : Test
130138 # Can't enable tcp feature since Miri does not support the tokio runtime
131139 run : MIRIFLAGS="-Zmiri-disable-isolation" cargo miri test --features http1,http2,client,server,nightly
@@ -144,8 +152,17 @@ jobs:
144152 - name : Install cargo-hack
145153 uses : taiki-e/install-action@cargo-hack
146154
155+ - uses : Swatinem/rust-cache@v2
156+
147157 - name : check --feature-powerset
148158 run : cargo hack --no-dev-deps check --feature-powerset --depth 2 --skip ffi,tracing
159+ env :
160+ RUSTFLAGS : " -D dead_code -D unused_imports"
161+
162+ - name : check --feature-powerset with tracing feature
163+ run : cargo hack --no-dev-deps check --feature-powerset --depth 2 --features tracing --skip ffi
164+ env :
165+ RUSTFLAGS : " --cfg hyper_unstable_tracing -D dead_code -D unused_imports"
149166
150167 ffi :
151168 name : Test C API (FFI)
@@ -158,6 +175,8 @@ jobs:
158175 - name : Install Rust
159176 uses : dtolnay/rust-toolchain@stable
160177
178+ - uses : Swatinem/rust-cache@v2
179+
161180 - name : Build FFI
162181 env :
163182 RUSTFLAGS : --cfg hyper_unstable_ffi
@@ -191,6 +210,8 @@ jobs:
191210 with :
192211 tool : cargo-expand
193212
213+ - uses : Swatinem/rust-cache@v2
214+
194215 - name : Build FFI
195216 env :
196217 RUSTFLAGS : --cfg hyper_unstable_ffi
@@ -210,8 +231,10 @@ jobs:
210231 - name : Install Rust
211232 uses : dtolnay/rust-toolchain@nightly
212233
234+ - uses : Swatinem/rust-cache@v2
235+
213236 - name : cargo doc
214- run : cargo rustdoc --features full,ffi -- --cfg docsrs --cfg hyper_unstable_ffi -D broken-intra-doc-links
237+ run : cargo rustdoc --features full,ffi -- --cfg docsrs --cfg hyper_unstable_ffi -D rustdoc:: broken-intra-doc-links
215238
216239 check-external-types :
217240 name : Check exposed types
@@ -224,12 +247,14 @@ jobs:
224247 - name : Install Rust
225248 uses : dtolnay/rust-toolchain@master
226249 with :
227- toolchain : nightly-2023-05-31 # Compatible version for cargo-check-external-types
250+ toolchain : nightly-2023-10-10 # Compatible version for cargo-check-external-types
228251
229252 - name : Install cargo-check-external-types
230253 uses : taiki-e/cache-cargo-install-action@v1
231254 with :
232- tool : cargo-check-external-types@0.1.7
255+ tool : cargo-check-external-types@0.1.9
256+
257+ - uses : Swatinem/rust-cache@v2
233258
234259 - name : check-external-types
235260 run : cargo check-external-types --config .github/workflows/external-types.toml
@@ -247,8 +272,35 @@ jobs:
247272 - name : Install cargo-udeps
248273 uses : taiki-e/install-action@cargo-udeps
249274
275+ - uses : Swatinem/rust-cache@v2
276+
250277 - name : Check unused dependencies on default features
251278 run : cargo udeps
252279
253280 - name : Check unused dependencies on full features
254281 run : cargo udeps --features full
282+
283+ minimal-versions :
284+ runs-on : ubuntu-latest
285+ needs : [style]
286+ steps :
287+ - uses : actions/checkout@v4
288+ - uses : dtolnay/rust-toolchain@nightly
289+ - uses : dtolnay/rust-toolchain@stable
290+ - uses : taiki-e/install-action@cargo-hack
291+ - uses : taiki-e/install-action@cargo-minimal-versions
292+ - uses : Swatinem/rust-cache@v2
293+ - run : cargo minimal-versions check
294+ - run : cargo minimal-versions check --features full
295+
296+ semver :
297+ name : semver
298+ runs-on : ubuntu-latest
299+ steps :
300+ - uses : actions/checkout@v4
301+ - name : Check semver
302+ uses : obi1kenobi/cargo-semver-checks-action@v2
303+ with :
304+ feature-group : only-explicit-features
305+ features : full
306+ release-type : minor
0 commit comments