Check Broken Docs Links in github/github #9
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
name: Check Broken Docs Links in github/github | |
# **What it does**: This checks for any broken docs.github.com links in github/github | |
# **Why we have it**: Make sure all docs in github/github are up to date | |
# **Who does it impact**: Docs engineering, people on GitHub | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '20 13 * * 1' # run every Monday at 1:20PM UTC | |
# **IMPORTANT:** Do not change the FREEZE environment variable set here! | |
# This workflow runs on a recurring basis. To temporarily disable it (e.g., | |
# during a docs deployment freeze), add an Actions Secret to the repo settings | |
# called `FREEZE` with a value of `true`. To re-enable workflow, simply | |
# delete that Secret from the repo settings. The environment variable here | |
# will duplicate that Secret's value for later evaluation. | |
env: | |
FREEZE: ${{ secrets.FREEZE }} | |
jobs: | |
check_github_github_links: | |
if: github.repository == 'github/docs-internal' | |
runs-on: ubuntu-latest | |
env: | |
# need to use a token from a user with access to github/github for this step | |
GITHUB_TOKEN: ${{ secrets.DOCS_BOT_FR }} | |
FIRST_RESPONDER_PROJECT: Docs content first responder | |
REPORT_AUTHOR: docubot | |
REPORT_LABEL: github github broken link report | |
REPORT_REPOSITORY: github/docs-content | |
steps: | |
- if: ${{ env.FREEZE == 'true' }} | |
run: | | |
echo 'The repo is currently frozen! Exiting this workflow.' | |
exit 1 # prevents further steps from running | |
- name: Checkout | |
uses: actions/checkout@1e204e9a9253d643386038d443f96446fa156a97 | |
- name: Setup Node | |
uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c | |
with: | |
node-version: 16.13.x | |
cache: npm | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Run broken github/github link check | |
run: | | |
script/check-github-github-links.js > broken_github_github_links.md | |
# check-github-github-links.js returns 0 if no links are broken, and 1 if any links | |
# are broken. When an Actions step's exit code is 1, the action run's job status | |
# is failure and the run ends. The following steps create an issue for the | |
# broken link report only if any links are broken, so `if: ${{ failure() }}` | |
# ensures the steps run despite the previous step's failure of the job. | |
# | |
# https://docs.github.com/actions/reference/context-and-expression-syntax-for-github-actions#job-status-check-functions | |
- if: ${{ failure() && env.FREEZE != 'true' }} | |
name: Get title for issue | |
id: check | |
run: echo "::set-output name=title::$(head -1 broken_github_github_links.md)" | |
- if: ${{ failure() && env.FREEZE != 'true'}} | |
name: Create issue from file | |
id: github-github-broken-link-report | |
uses: peter-evans/create-issue-from-file@b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e | |
with: | |
token: ${{ env.GITHUB_TOKEN }} | |
title: ${{ steps.check.outputs.title }} | |
content-filepath: ./broken_github_github_links.md | |
repository: ${{ env.REPORT_REPOSITORY }} | |
labels: ${{ env.REPORT_LABEL }} |