2222 strategy :
2323 matrix :
2424 tls-feature :
25- - " " # default, boringssl-vendored
2625 - " boringssl-boring-crate"
2726 - " openssl"
2827 # Only run on "pull_request" event for external PRs. This is to avoid
3130 steps :
3231 - name : Checkout sources
3332 uses : actions/checkout@v4
34- with :
35- submodules : ' recursive'
3633
3734 - name : Install stable toolchain
3835 uses : dtolnay/rust-toolchain@master
4643 sudo apt-get install libexpat1-dev libfreetype6-dev libfontconfig1-dev
4744
4845 - name : Unused dependency check
49- if : ${{ matrix.tls-feature == '' }}
46+ if : ${{ matrix.tls-feature == 'boringssl-boring-crate ' }}
5047 uses : bnjbvr/cargo-machete@main
5148
5249 - name : Build OpenSSL
@@ -65,10 +62,12 @@ jobs:
6562 run : cargo test --verbose --all-targets --features=${{ matrix.tls-feature }} ${{ env.DEFAULT_OPTIONS }}
6663
6764 # tokio-quiche requires the `boring` crate, so don't run its tests when
68- # building without it.
65+ # building without it. `--no-default-features` disables the
66+ # `boringssl-boring-crate` default so the openssl backend is the only
67+ # TLS backend in the build.
6968 - name : Run cargo test
7069 if : ${{ matrix.tls-feature != 'boringssl-boring-crate' }}
71- run : cargo test --verbose --all-targets --features=${{ matrix.tls-feature }} ${{ env.NO_BORING_OPTIONS }}
70+ run : cargo test --verbose --all-targets --no-default-features -- features=${{ matrix.tls-feature }} ${{ env.NO_BORING_OPTIONS }}
7271
7372 # Need to run doc tests separately.
7473 # (https://github.com/rust-lang/cargo/issues/6669)
@@ -80,10 +79,12 @@ jobs:
8079 # (https://github.com/rust-lang/cargo/issues/6669)
8180 #
8281 # tokio-quiche requires the `boring` crate, so don't run its tests when
83- # building without it.
82+ # building without it. `--no-default-features` disables the
83+ # `boringssl-boring-crate` default so the openssl backend is the only
84+ # TLS backend in the build.
8485 - name : Run cargo doc test
8586 if : ${{ matrix.tls-feature != 'boringssl-boring-crate' }}
86- run : cargo test --verbose --doc --features=${{ matrix.tls-feature }} ${{ env.NO_BORING_OPTIONS }}
87+ run : cargo test --verbose --doc --no-default-features -- features=${{ matrix.tls-feature }} ${{ env.NO_BORING_OPTIONS }}
8788
8889 # NOTE: this is disabled as it fails when building changes that bump
8990 # version of local crates (e.g. when doing a `qlog` release) that have not
@@ -92,12 +93,22 @@ jobs:
9293 # - name: Run cargo package
9394 # run: cargo package --verbose --workspace --exclude=quiche_apps --allow-dirty
9495
95- - name : Run cargo clippy
96+ - name : Run cargo clippy (boring)
97+ if : ${{ matrix.tls-feature == 'boringssl-boring-crate' }}
9698 run : cargo clippy --features=${{ matrix.tls-feature }} ${{ env.DEFAULT_OPTIONS }} -- -D warnings
9799
98- - name : Run cargo clippy on examples
100+ - name : Run cargo clippy
101+ if : ${{ matrix.tls-feature != 'boringssl-boring-crate' }}
102+ run : cargo clippy --no-default-features --features=${{ matrix.tls-feature }} ${{ env.NO_BORING_OPTIONS }} -- -D warnings
103+
104+ - name : Run cargo clippy on examples (boring)
105+ if : ${{ matrix.tls-feature == 'boringssl-boring-crate' }}
99106 run : cargo clippy --examples --features=${{ matrix.tls-feature }} ${{ env.DEFAULT_OPTIONS }} -- -D warnings
100107
108+ - name : Run cargo clippy on examples
109+ if : ${{ matrix.tls-feature != 'boringssl-boring-crate' }}
110+ run : cargo clippy --examples --no-default-features --features=${{ matrix.tls-feature }} ${{ env.NO_BORING_OPTIONS }} -- -D warnings
111+
101112 - name : Run cargo doc
102113 run : cargo doc --no-deps --all-features --document-private-items
103114
@@ -119,8 +130,6 @@ jobs:
119130 steps :
120131 - name : Checkout sources
121132 uses : actions/checkout@v4
122- with :
123- submodules : ' recursive'
124133
125134 - name : Install stable toolchain
126135 uses : dtolnay/rust-toolchain@master
@@ -148,8 +157,6 @@ jobs:
148157 steps :
149158 - name : Checkout sources
150159 uses : actions/checkout@v4
151- with :
152- submodules : ' recursive'
153160
154161 - name : Install stable toolchain
155162 uses : dtolnay/rust-toolchain@master
@@ -192,8 +199,6 @@ jobs:
192199 steps :
193200 - name : Checkout sources
194201 uses : actions/checkout@v4
195- with :
196- submodules : ' recursive'
197202
198203 - name : Install stable toolchain
199204 uses : dtolnay/rust-toolchain@master
@@ -275,8 +280,6 @@ jobs:
275280 steps :
276281 - name : Checkout sources
277282 uses : actions/checkout@v4
278- with :
279- submodules : ' recursive'
280283
281284 - name : Install stable toolchain
282285 uses : dtolnay/rust-toolchain@master
@@ -290,7 +293,7 @@ jobs:
290293 run : cargo-binstall -y cross
291294
292295 - name : Run cargo test using cross
293- run : cross test --target=${{ matrix.target }} --verbose --all-targets ${{ env.NO_BORING_OPTIONS }} --exclude qlog-dancer
296+ run : cross test --target=${{ matrix.target }} --verbose --all-targets ${{ env.NO_BORING_OPTIONS }} --exclude qlog-dancer --features=boringssl-boring-crate
294297
295298 http3_test :
296299 runs-on : ubuntu-latest
@@ -300,8 +303,6 @@ jobs:
300303 steps :
301304 - name : Checkout sources
302305 uses : actions/checkout@v4
303- with :
304- submodules : ' recursive'
305306
306307 - name : Install stable toolchain
307308 uses : dtolnay/rust-toolchain@master
@@ -323,8 +324,6 @@ jobs:
323324 steps :
324325 - name : Checkout sources
325326 uses : actions/checkout@v4
326- with :
327- submodules : ' recursive'
328327
329328 - name : Build Docker images
330329 run : make docker-build
@@ -351,8 +350,6 @@ jobs:
351350 steps :
352351 - name : Checkout sources
353352 uses : actions/checkout@v4
354- with :
355- submodules : ' recursive'
356353
357354 - name : Install stable toolchain for the target
358355 uses : dtolnay/rust-toolchain@master
0 commit comments