Skip to content

TINYDOC-3514 - Add scheduled link checking to CI - #4276

Draft
kemister85 wants to merge 2 commits into
mainfrom
TINYDOC-3514-link-checking
Draft

TINYDOC-3514 - Add scheduled link checking to CI#4276
kemister85 wants to merge 2 commits into
mainfrom
TINYDOC-3514-link-checking

Conversation

@kemister85

@kemister85 kemister85 commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Ticket: TINYDOC-3514

What this does

Adds a weekly scheduled link check (Mondays 06:00 UTC, plus manual dispatch). Builds the full production site — all four published versions — and runs lychee over the built HTML.

Findings go to a single rolling link-rot issue: the body is refreshed each run, and the issue closes automatically once a run comes back clean.

Layer 1 of 2 — the PR-time check is #4277.

Validation

  • Config parses under lychee 0.24.2.
  • Full local build crawled: tuning .lycheeignore took it from 446 errors to 9 (7 distinct), all genuine rot — archive.tinymce.com (×2), gsuite.google.com, dropbox.com/guide/business, ietf.org/rfc/bcp/bcp47.txt, addons.mozilla.org, and mysite.com/tinymce.html (a placeholder rendered as a live link, so it needs a content fix rather than an ignore entry). Content follow-up, not blockers here.
  • Three hosts confirmed reachable in a browser but refusing automated checkers are now ignored: stackoverflow.com (403), graylog.org (403), tinymcedocs.mcp.kapa.ai (405 — an MCP endpoint, not a page).
  • exit_code confirmed as a declared output of lychee-action@v2, so the reporting conditions fire.
  • link-rot label created.

Not yet verified: the rolling-issue logic cannot run until this is on main, because workflow_dispatch only fires from the default branch. Dispatch it manually straight after merge to confirm the first real run.

Add a weekly scheduled workflow that builds the full published site (all
versions) and runs lychee to detect dead external links, opening a
link-rot issue when any are found.

- .github/workflows/link-check.yml: weekly cron + manual dispatch
- .lychee.toml: checker config (resolves root-relative links via base_url,
  excludes the tiny.cloud family and localhost, accepts redirects and 429)
- .lycheeignore: curated hosts that block automated checkers but resolve
  in a browser
- package.json: check-links script for local use
- .gitignore: ignore the local lychee cache and report output
@kemister85
kemister85 force-pushed the TINYDOC-3514-link-checking branch from 5858085 to eee30cf Compare August 20, 2026 02:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant