diff --git a/.github/actions/build_docs/action.yml b/.github/actions/build_docs/action.yml index 27f0f37d4f87b03748c168c7ec64b806b0ccf040..9a2d7e1ec718fd73cff7a32a6573e6b9b0f8ddd4 100644 --- a/.github/actions/build_docs/action.yml +++ b/.github/actions/build_docs/action.yml @@ -19,6 +19,12 @@ runs: shell: bash -euxo pipefail {0} run: ./script/linux + - name: Check for broken links + uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332 # v2.4.1 + with: + args: --no-progress --exclude '^http' './docs/src/**/*' + fail: true + - name: Build book shell: bash -euxo pipefail {0} run: | diff --git a/script/check-links b/script/check-links index 0f9840ec0609f5137613d4f76d5a160b87358d41..259ce1d1b9be33749df6c1391ef3910e757e90aa 100755 --- a/script/check-links +++ b/script/check-links @@ -2,6 +2,31 @@ set -euo pipefail +usage() { + echo "Usage: $0 [local|all] [--help]" + echo " local Only check local links (default)" + echo " all Check all links including remote ones" + exit 1 +} + +check_mode="local" +if [ $# -eq 1 ]; then + case "$1" in + "local") check_mode="local" ;; + "all") check_mode="all" ;; + "--help") usage ;; + *) echo "Invalid argument: $1" && usage ;; + esac +else + usage +fi + cargo install lychee cd "$(dirname "$0")/.." -lychee --no-progress './docs/src/**/*' + +if [ "$check_mode" = "all" ]; then + lychee --no-progress './docs/src/**/*' +else + lychee --exclude '^http' './docs/src/**/*' +fi +#