-
Notifications
You must be signed in to change notification settings - Fork 0
57 lines (50 loc) · 1.59 KB
/
link-check.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---
name: "Link Check"
on: # yamllint disable-line rule:truthy
workflow_dispatch:
schedule:
- cron: "0 0 * * 0" # 0:00 every sunday
jobs:
link-check:
name: Link Check
runs-on: ubuntu-latest
permissions:
issues: write # required for peter-evans/create-issue-from-file
steps:
- name: Generate Token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: "${{ secrets.BOT_APP_ID }}"
private-key: "${{ secrets.BOT_APP_PRIVATE_KEY }}"
- name: Checkout
uses: actions/checkout@v4
with:
token: "${{ steps.app-token.outputs.token }}"
fetch-depth: 0
- name: Link Checker
uses: lycheeverse/lychee-action@v2
with:
# Check all markdown files in repo (default)
args: --base . --verbose --no-progress './**/*.md'
format: markdown
output: results.md
# Don't fail action on broken links
fail: false
- name: Print Output
run: cat results.md
- name: Find Link Checker Issue
id: link-checker-issue
uses: micalevisk/last-issue-action@v2
with:
state: open
labels: |
link-checker
- name: Create or Update Issue
uses: peter-evans/create-issue-from-file@v5
with:
title: Broken links detected 🔗
issue-number: ${{ steps.link-checker-issue.outputs.has-found == 'true' && steps.link-checker-issue.outputs.issue-number || '' }}
content-filepath: results.md
labels: |
link-checker