mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-19 00:56:16 +00:00
ci(docs): treat non-404 4xx link-check failures as warnings, not errors
markdown-link-check has no concept of "warning" vs "error" — it's a binary alive/dead per link, so a transient 429 from a rate-limiting site we don't control (recently: blogspot.com, izndgroup.com) fails the whole CI job exactly like a genuine dead link, with no way to tell them apart from the job's exit code. New scripts/check-doc-links.sh wraps the tool per file, parses its "[✖] <url> → Status: <code>" output, and re-decides pass/fail per link: 404 still fails the build (a real dead link, worth fixing), other 4xx (429, 401, 403, ...) become a GitHub Actions ::warning:: annotation instead, and anything else (5xx, timeouts, DNS failures) still fails the build same as before. De-dupes markdown-link-check's own doubled -v output. Written for bash 3.2 (macOS's default /bin/bash) so it's testable locally, not just on the ubuntu-latest runner. Existing retry config in .github/markdown-link-check.json (retryOn429, 3 retries, 30s backoff) is untouched; this only changes what happens once retries are exhausted. Verified locally: 6 synthetic scenarios (404/429/500/mixed/clean/ duplicate-line) via a stubbed markdown-link-check, plus a real run against the docs tree with the actual tool.
This commit is contained in:
@@ -197,7 +197,7 @@ jobs:
|
||||
- name: Check documentation links
|
||||
run: |
|
||||
npm install -g markdown-link-check
|
||||
find . -name "*.md" -not -path "./tests/*" -not -path "./node_modules/*" -print0 | xargs -0 -n1 markdown-link-check -q -v -c .github/markdown-link-check.json
|
||||
./scripts/check-doc-links.sh
|
||||
|
||||
- name: Warn on pending images
|
||||
run: |
|
||||
|
||||
Reference in New Issue
Block a user