Skip to content

Link Checker

Link Checker #160

Workflow file for this run

name: Link Checker
on:
schedule:
- cron: "0 13 * * 0" # run every Sunday at 1pm UTC https://crontab.guru/#0_13_*_*_1
workflow_dispatch: # trigger manually
inputs:
branch:
description: "Branch to check"
required: true
default: main
# globals
env:
CHECK_WEBSITE: https://music-encoding.org
CHECK_OWNER: music-encoding
CHECK_BRANCH: main
jobs:
website_link_check:
name: Check website links
runs-on: ubuntu-latest
if: ${{ github.repository_owner == 'music-encoding' }}
steps:
- uses: technote-space/broken-link-checker-action@b8332d945b97f8b52eb8d7d889a1e0e37106c1a9 # ratchet:technote-space/broken-link-checker-action@v2
with:
target: ${{ env.CHECK_WEBSITE }}
linkChecker:
runs-on: ubuntu-latest
steps:
- name: Set variables
run: |
if [[ "${{ github.event.inputs.branch }}" != '' ]] ; then
echo "Setting branch: ${{ github.event.inputs.branch }}"
echo "CHECK_BRANCH=${{ github.event.inputs.branch }}" >> $GITHUB_ENV
fi
- name: Checkout main repo
uses: actions/checkout@v4
with:
ref: ${{ env.CHECK_BRANCH }}
- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@c053181aa0c3d17606addfe97a9075a32723548a # ratchet:lycheeverse/[email protected]
with:
args: |
--verbose --no-progress './**/*.md' './**/*.html' './**/*.rst' \
--exclude-mail \
--exclude-loopback \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_includes \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_layouts \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_site \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/index.html \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/community/projects-users.md \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/conference/past.md \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_conferences/2018 \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_conferences/2019 \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_conferences/2020 \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_conferences/2021 \
--exclude-path file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_conferences/2022 \
--exclude 'https://doi.org/10.13140/RG.2.2.15014.93760' \
--exclude 'https://doi.org/10.15463/music-1' \
--exclude 'https://arsmusicae.org' \
--exclude 'https://www.conftool.net/music-encoding2022/*' \
--exclude 'file:///Users/*' \
--remap 'file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/archive/ https://github.com/music-encoding/music-encoding.github.io/tree/gh-pages/archive/' \
--remap 'file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_tutorials/ https://github.com/music-encoding/music-encoding.github.io/tree/gh-pages/tutorials' \
--remap 'file:///home/runner/work/music-encoding.github.io/music-encoding.github.io/_tutorials-ES/ https://github.com/music-encoding/music-encoding.github.io/tree/gh-pages/tutorials-ES' \
--remap 'https://github.com/music-encoding/music-encoding/tree/basic https://github.com/music-encoding/music-encoding/commit/b50748ce537b43e1527791fb41e8c28aa1582cdb' \
--remap 'http://music-encoding.org/community/conference/tours17/program/ https://web.archive.org/web/20170511140944/http://music-encoding.org/community/conference/tours17/program' \
--remap 'http://music-encoding.org/community/mei-organization/mei-by-laws/ https://music-encoding.org/community/mei-by-laws.html' \
--remap 'http://music-encoding.org/proceedings https://github.com/music-encoding/mec-proceedings'
- name: Create Issue From File
if: env.lychee_exit_code != 0
uses: peter-evans/create-issue-from-file@24452a72d85239eacf1468b0f1982a9f3fec4c94 # ratchet:peter-evans/create-issue-from-file@v4
with:
title: Link Checker Report
content-filepath: ./lychee/out.md
labels: bug, documentation