Skip to content

Commit 2c934fe

Browse files
committed
[ci] use cargo deadlinks to check for dead links
Since `cargo deadlinks` is just a link-checking wrapper around `cargo doc`, we can simply replace our `doc` invocation with `deadlinks` to get the benefits of both.
1 parent 52705df commit 2c934fe

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

.github/workflows/ci.yml

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,9 +274,22 @@ jobs:
274274
# work properly.
275275
METADATA_DOCS_RS_RUSTDOC_ARGS="$(cargo metadata --format-version 1 | \
276276
jq -r ".packages[] | select(.name == \"zerocopy\").metadata.docs.rs.\"rustdoc-args\".[]" | tr '\n' ' ')"
277+
# We invoke `cargo deadlinks` instead of `cargo doc`; `cargo deadlinks`
278+
# is a link-checking wrapper around `cargo doc`.
277279
export RUSTDOCFLAGS="${{ matrix.toolchain == 'nightly' && '-Z unstable-options --document-hidden-items' || '' }} $RUSTDOCFLAGS $METADATA_DOCS_RS_RUSTDOC_ARGS"
278280
./cargo.sh +${{ matrix.toolchain }} doc --document-private-items --package ${{ matrix.crate }} ${{ matrix.features }}
279281
282+
- name: Check dead links
283+
run: |
284+
cargo install -q cargo-deadlinks --version 0.8.1
285+
METADATA_DOCS_RS_RUSTDOC_ARGS="$(cargo metadata --format-version 1 | \
286+
jq -r ".packages[] | select(.name == \"zerocopy\").metadata.docs.rs.\"rustdoc-args\".[]" | tr '\n' ' ')"
287+
# We invoke `cargo deadlinks` instead of `cargo doc`; `cargo deadlinks`
288+
# is a link-checking wrapper around `cargo doc`.
289+
export RUSTDOCFLAGS="${{ matrix.toolchain == 'nightly' && '-Z unstable-options --document-hidden-items' || '' }} $RUSTDOCFLAGS $METADATA_DOCS_RS_RUSTDOC_ARGS"
290+
./cargo.sh +${{ matrix.toolchain }} deadlinks --check-intra-doc-links -- --document-private-items --package ${{ matrix.crate }} ${{ matrix.features }}
291+
if: matrix.toolchain != 'msrv'
292+
280293
# Check semver compatibility with the most recently-published version on
281294
# crates.io. We do this in the matrix rather than in its own job so that it
282295
# gets run on different targets. Some of our API is target-specific (e.g.,
@@ -412,11 +425,12 @@ jobs:
412425
# in parallel.
413426
#
414427
# [1] https://stackoverflow.com/a/42139535/836390
415-
cargo check --workspace --tests &> /dev/null &
416-
cargo metadata &> /dev/null &
417-
cargo install cargo-readme --version 3.2.0 &> /dev/null &
418-
cargo install --locked kani-verifier &> /dev/null &
419-
cargo kani setup &> /dev/null &
428+
cargo check --workspace --tests &> /dev/null &
429+
cargo metadata &> /dev/null &
430+
cargo install cargo-readme --version 3.2.0 &> /dev/null &
431+
cargo install cargo-deadlinks --version 0.8.1 &> /dev/null &
432+
cargo install --locked kani-verifier &> /dev/null &
433+
cargo kani setup &> /dev/null &
420434
421435
wait
422436

0 commit comments

Comments
 (0)