Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions .github/workflows/broken-links-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ jobs:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
# available images: https://github.com/actions/runner-images#available-images
runs-on: ubuntu-latest
# Internal-link audit — informational. Real broken /foo/ refs still
# appear in the run summary but a flaky build step won't fail deploy.
continue-on-error: true
steps:
- name: Checkout 🛎️
uses: actions/checkout@v6.0.2
Expand Down Expand Up @@ -41,7 +44,9 @@ jobs:
purgecss -c purgecss.config.js
- name: Link Checker 🔗
uses: lycheeverse/lychee-action@v2.8.0
env:
WORKSPACE: ${{ github.workspace }}
with:
fail: true
fail: false
# only check local links
args: --offline --root-dir ${{ github.workspace }}/_site --remap '_site(/?.*)/assets/(.*) _site/assets/$2' --verbose --no-progress '_site/**/*.html'
args: --offline --root-dir $WORKSPACE/_site --remap '_site(/?.*)/assets/(.*) _site/assets/$2' --verbose --no-progress '_site/**/*.html'
31 changes: 28 additions & 3 deletions .github/workflows/broken-links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,37 @@ on:
jobs:
link-checker:
runs-on: ubuntu-latest
# Third-party link rot is not our deploy blocker — report results but
# do not fail the workflow when external sites flake or rate-limit.
continue-on-error: true
steps:
- uses: actions/checkout@v6.0.2

- name: Link Checker 🔗
uses: lycheeverse/lychee-action@v2.8.0
with:
fail: true
# removed md files that include liquid tags
args: --user-agent 'curl/7.54' --verbose --no-progress --root-dir . --base-url https://djbsec.github.io --accept 200,429,403 --max-retries 0 --exclude-path README.md --exclude-path FAQ.md --exclude-path INSTALL.md --exclude-path CUSTOMIZE.md --exclude-path _pages/404.md --exclude-path _pages/blog.md --exclude-path examples/ --exclude-path lighthouse_results/ '_pages/**/*.md' '_posts/**/*.md'
fail: false
# `fail: false` returns exit 0 regardless of broken links; the
# action's summary still reports them. `continue-on-error` on
# the job is a belt-and-suspenders for future tightening.
args: >-
--user-agent 'curl/7.54'
--verbose
--no-progress
--root-dir .
--base-url https://djbsec.github.io
--accept 100..=103,200..=299,403,429
--max-retries 3
--retry-wait-time 5
--timeout 20
--max-redirects 10
--exclude-path README.md
--exclude-path FAQ.md
--exclude-path INSTALL.md
--exclude-path CUSTOMIZE.md
--exclude-path _pages/404.md
--exclude-path _pages/blog.md
--exclude-path examples/
--exclude-path lighthouse_results/
'_pages/**/*.md'
'_posts/**/*.md'
8 changes: 8 additions & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,11 @@ a\.co
vulnhub\.com
cyberseclabs\.co\.uk
.*%7B%7B.*
# Frequent rate-limit / anti-bot 403 / 429 even on healthy URLs
twitter\.com
x\.com
facebook\.com
youtube\.com
medium\.com
# Aggregator redirect prefixes — final URLs are checked elsewhere
go\.theregister\.com
Loading