fleet/.github/workflows/docs.yml
2026-02-11 11:11:05 -07:00

52 lines
1.8 KiB
YAML

name: Check for bad links in documentation
on:
pull_request:
paths:
# Only run on changes to .md files -- this check is too flakey to run on every PR
- '**.md'
workflow_dispatch: # Manual
schedule:
- cron: '0 6 * * *' # Nightly 6AM UTC
# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
cancel-in-progress: true
defaults:
run:
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
shell: bash
permissions:
contents: read
jobs:
markdown-link-check:
permissions:
contents: read # to read files to check dead links
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@20cf305ff2072d973412fa9b1e3a4f227bda3c76 # v2.14.0
with:
egress-policy: audit
- name: Checkout Code
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
- name: Verify Markdown documentation is free of "here" and "click here" link anchors
run: |
if [[ $(grep -Eir --exclude-dir=node_modules --exclude-dir=third_party --include=\*.md '\[(click )?here\]' .) ]]; then
echo '❌ fail: links found with "here" or "click here" anchors in Markdown files'
grep -Eir --exclude-dir=node_modules --exclude-dir=third_party --include=\*.md '\[(click )?here\]' .
exit 1
fi
- name: Check links
uses: gaurav-nelson/github-action-markdown-link-check@d53a906aa6b22b8979d33bc86170567e619495ec # v1.0.15
with:
use-quiet-mode: 'yes'
config-file: .github/workflows/config/markdown-link-check-config.json
base-branch: ${{ github.base_ref }}