docs.yml 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # Documentation quality gate (task 48).
  2. #
  3. # Runs the local link checker over README.md, AGENTS.md, SECURITY.md, and
  4. # docs/*.md so a stale file or heading reference fails CI. This is the "markdown-link-check
  5. # equivalent" named by the task; it is deliberately offline (only relative
  6. # links are validated) so the job needs no network beyond checkout/setup.
  7. #
  8. # Task 42 owns the main CI workflow. This job is intentionally a separate
  9. # workflow file so it can be added to that pipeline as a required step
  10. # (`docs` job name) without a conflict, and it also runs standalone.
  11. name: docs
  12. on:
  13. push:
  14. paths:
  15. - "README.md"
  16. - "AGENTS.md"
  17. - "SECURITY.md"
  18. - "docs/**"
  19. - "scripts/check_doc_links.py"
  20. - ".github/workflows/docs.yml"
  21. pull_request:
  22. paths:
  23. - "README.md"
  24. - "AGENTS.md"
  25. - "SECURITY.md"
  26. - "docs/**"
  27. - "scripts/check_doc_links.py"
  28. - ".github/workflows/docs.yml"
  29. workflow_dispatch: {}
  30. permissions:
  31. contents: read
  32. jobs:
  33. link-check:
  34. name: docs link-check
  35. runs-on: ubuntu-24.04
  36. steps:
  37. - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
  38. - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
  39. with:
  40. python-version: "3.x"
  41. - name: Check documentation links
  42. run: python3 scripts/check_doc_links.py