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 16 * * 1' # Run every Monday at 16:20 UTC / 8:20 PST permissions: contents: read 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_PAT_BASE }} REPORT_AUTHOR: docs-bot REPORT_LABEL: github github broken link report,workflow-generated REPORT_REPOSITORY: github/docs-content steps: - name: Checkout uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 with: # To prevent issues with cloning early access content later persist-credentials: 'false' - uses: ./.github/actions/node-npm-setup - uses: ./.github/actions/get-docs-early-access with: token: ${{ secrets.DOCS_BOT_PAT_BASE }} - name: Build server run: npm run build - name: Start server in the background env: NODE_ENV: production PORT: 4000 ENABLED_LANGUAGES: en run: | npm run start & sleep 5 curl --retry-connrefused --retry 3 -I http://localhost:4000/ - name: Run broken github/github link check run: | npm run check-github-github-links -- broken_github_github_links.md - name: Get title for issue # If the file 'broken_github_github_links.md' got created, # the hash of it will not be an empty string. That means if found # broken links, we want to create an issue. if: ${{ hashFiles('broken_github_github_links.md') != '' }} id: check run: echo "title=$(head -1 broken_github_github_links.md)" >> $GITHUB_OUTPUT - name: Create issue from file if: ${{ hashFiles('broken_github_github_links.md') != '' }} id: github-github-broken-link-report uses: peter-evans/create-issue-from-file@fca9117c27cdc29c6c4db3b86c48e4115a786710 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 }} - uses: ./.github/actions/slack-alert if: ${{ failure() && github.event_name != 'workflow_dispatch' }} with: slack_channel_id: ${{ secrets.DOCS_ALERTS_SLACK_CHANNEL_ID }} slack_token: ${{ secrets.SLACK_DOCS_BOT_TOKEN }}