123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- name: Links Checker
- on:
- ## Allow triggering this workflow manually via GitHub CLI/web
- workflow_dispatch:
- ## Run this workflow automatically every month
- schedule:
- - cron: '0 0 1 * *'
- jobs:
- link_checker:
- name: Check links and create automated issue if needed
- runs-on: ubuntu-latest
- env:
- REPORT_FILE: links-report
- steps:
- ## Check out code using Git
- - uses: actions/checkout@v3
- - name: Check all links at README.md but skips translations files
- id: lychee
- uses: lycheeverse/lychee-action@v1.4.1
- with:
- output: ${{ env.REPORT_FILE }}
- format: markdown
- ## Do not fail this step on broken links
- fail: false
- ## Allow pages replying with 200 (Ok), 204 (No Content),
- ## 206 (Partial Content) in at most 20 seconds with HTML content.
- args: >-
- --verbose
- --accept 200,204,206
- --headers "accept=text/html"
- --timeout 20
- --max-concurrency 10
- --no-progress
- README.md
- env:
- ## Avoid rate limiting when checking github.com links
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Lychee's exit code
- ## https://github.com/lycheeverse/lychee#exit-codes
- run: echo Lychee exit with ${{ steps.lychee.outputs.exit_code }}
- - name: Find the last report issue open
- uses: micalevisk/last-issue-action@v1.2
- id: last_issue
- with:
- state: open
- labels: |
- report
- automated issue
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Create issue from report file
- if: ${{ steps.last_issue.outputs.has_found == 'false' }}
- uses: peter-evans/create-issue-from-file@v4
- with:
- title: Link checker report
- content-filepath: ${{ env.REPORT_FILE }}
- issue-number: ${{ steps.last_issue.outputs.issue_number }}
- labels: |
- report
- automated issue
- - name: Update last report open issue created
- if: ${{ steps.last_issue.outputs.has_found == 'true' }}
- uses: peter-evans/create-issue-from-file@v4
- with:
- title: Link checker report
- content-filepath: ${{ env.REPORT_FILE }}
- issue-number: ${{ steps.last_issue.outputs.issue_number }}
- labels: |
- report
- automated issue
- - name: Close last report open issue
- if: ${{ steps.lychee.outputs.exit_code == 0 }}
- uses: peter-evans/close-issue@v2
- with:
- issue-number: ${{ steps.last_issue.outputs.issue_number }}
|