Check for broken links #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Check that all links are valid, i.e. not broken | |
name: Check links | |
on: | |
push: | |
pull_request: | |
jobs: | |
check-links: | |
runs-on: ubuntu-latest | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
steps: | |
- uses: actions/checkout@v4 | |
# The link checker will only work if mlc_config.json is a valid JSON | |
- name: Validate JSON | |
uses: docker://orrosenblatt/validate-json-action:latest | |
env: | |
INPUT_SCHEMA: .github/workflows/valid_json_schema.json | |
INPUT_JSONS: mlc_config.json | |
# These are status code that cannot be ignored. | |
# | |
# If there is a valid external link that fails, | |
# add it to mlc_config.json | |
- name: External links must be checked, do not allow '0' in the 'aliveStatusCodes' of mlc_config.json | |
run: if [[ $(grep --regexp "[^0-9]0[^0-9]" mlc_config.json | wc --lines) == "1" ]]; then echo "FOUND"; exit 42; fi | |
- name: Internal links must checked, do not allow '400' in the 'aliveStatusCodes' of mlc_config.json | |
run: if [[ $(grep --regexp "[^0-9]400[^0-9]" mlc_config.json | wc --lines) == "1" ]]; then echo "FOUND"; exit 42; fi | |
- uses: gaurav-nelson/github-action-markdown-link-check@v1 | |
with: | |
config-file: 'mlc_config.json' | |
use-quiet-mode: 'yes' | |
use-verbose-mode: 'no' | |