Skip to content

Dead Link Checker #2170

Dead Link Checker

Dead Link Checker #2170

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Dead Link Checker
on:
push:
branches:
- master
pull_request:
schedule:
- cron: "0 5 * * *"
concurrency:
group: dlc-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
CheckDeadLinks:
runs-on: ubuntu-latest
# Will check all history docs when event is schedule, will cost many times in this case, so we need more time
timeout-minutes: 120
steps:
- uses: actions/checkout@v2
# TODO: Disable related document dead link check temporary, due to no one would like to fix it
# - name: Prepare Related Resource
# if: github.event_name == 'schedule'
# run: ./scripts/prepare_docs.sh
- run: npm install fs-extra --save-dev
- name: Generate the images of Logs and Events
run: node ./scripts/generate_imgs
- run: sudo npm install -g [email protected]
- run: sudo apt install plocate -y && sudo updatedb
# We need to delete directory swap before markdown checker
- name: Checker
run: |
rm -rf ./swap
rm -rf ./node_modules
set -xe
MAX_CONCURRENCY=6
EXIT_CODE=0
cleanup() {
pkill -P $$
exit "$EXIT_CODE"
}
trap cleanup SIGINT SIGTERM
for file in $(locate "$PWD*/*.md" | grep -v ./.github); do
while [ $(jobs -r | wc -l) -ge "$MAX_CONCURRENCY" ]; do
wait -n || { EXIT_CODE=$?; cleanup; }
done
markdown-link-check -c .dlc.json -q "$file" &
done
wait || { EXIT_CODE=$?; cleanup; }