Skip to content

Link check

Link check #65

Workflow file for this run

# 週1回リンクチェッカーを実行します。
name: Link check
on:
workflow_dispatch:
schedule:
- cron: '0 2 * * 1' # Monday, 2am(UTC+0)
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# Setup Node.js
- name: Setup Node.js environment
uses: actions/setup-node@v4
# Install npm packages
- name: Install dependencies
run: yarn --frozen-lockfile --cwd scripts/content-checker
# リンクチェックの実行
- id: linkCheck
name: Execute link checker
# リンクエラーが見つかるとスクリプトはexit(1)で終了するが、このactionは中止しない。
# linkChecker.tsを実行し、`console.log()`と`console.error()`の内容をファイルに出力する
run: |
cd scripts/content-checker && npx ts-node linkChecker.ts 1>../../output.txt 2>../../errors.txt || true
echo errors=`cat ../../errors.txt` >> $GITHUB_OUTPUT
- name: Output log to summary
# 実行結果をActionsのサマリーに出力
run: |
today=$(date "+%Y-%m-%d")
echo "### Link check ${today}" >> $GITHUB_STEP_SUMMARY
while read output; do
echo "$output" >> $GITHUB_STEP_SUMMARY
done <output.txt
- name: Output errors to summary
# 前のstepでエラーがあった場合はエラーも出力
if: steps.linkCheck.outputs.errors != ''
run: |
echo '```' >> $GITHUB_STEP_SUMMARY
while read error; do
echo "$error" >> $GITHUB_STEP_SUMMARY
done <errors.txt
echo '```' >> $GITHUB_STEP_SUMMARY