1
1
name : Verify links
2
2
3
3
on :
4
- push :
5
- branches :
6
- - main
7
- - workflow/verify-links # TODO REMOVE
4
+ # push:
5
+ # branches:
6
+ # - main
7
+ # - workflow/verify-links # TODO Remove before merging PR
8
8
repository_dispatch :
9
9
workflow_dispatch :
10
+ workflow_call :
11
+ inputs :
12
+ create_issue :
13
+ required : false
14
+ type : boolean
15
+ default : false
10
16
schedule :
11
17
- cron : " 08 08 * * 1"
12
18
19
+ concurrency :
20
+ group : ${{ github.workflow }}-${{ github.ref }}
21
+ cancel-in-progress : true
22
+
13
23
jobs :
14
- linkChecker :
24
+ link_checker :
15
25
runs-on : ubuntu-latest
16
26
permissions :
17
27
issues : write # required for peter-evans/create-issue-from-file
18
28
steps :
19
- - uses : actions/checkout@v4
29
+ - uses : actions/download-artifact@v5
30
+ with :
31
+ name : " build"
32
+ path : " prod"
33
+
34
+ - name : Checkout lychee toml file
35
+ uses : actions/checkout@v5
36
+ with :
37
+ path : repo
38
+ sparse-checkout : ' .lychee.toml'
39
+ sparse-checkout-cone-mode : false
20
40
21
41
- name : Restore lychee cache
22
42
uses : actions/cache@v4
@@ -30,40 +50,37 @@ jobs:
30
50
uses : lycheeverse/lychee-action@v2
31
51
with :
32
52
fail : false
33
- # Exclude all private and local addresses in the check
34
- # Also exclude domains that actively block GitHub to send requests
35
- # Any Cockpit URLs it finds that have variables will be ignored too
36
53
args : |
37
- --max-concurrency 1
38
- --retry-wait-time 60
39
- --base .
40
- --skip-missing
41
- --exclude-all-private
42
- --exclude '^https://linux.die.net'
43
- --exclude 'file:///'
44
- --exclude 'domain.tld'
45
- --exclude '^.*\{\{'
46
- --exclude 'https://bodhi.fedoraproject.org/updates/cockpit-*'
47
- --cache
48
- --cache-exclude-status 400..=599
49
- --max-cache-age 1d
50
- -v
54
+ --root-dir "${{github.workspace}}/prod"
55
+ --config "${{github.workspace}}/repo/.lychee.toml"
51
56
.
52
57
token : ${{ secrets.GITHUB_TOKEN }}
53
58
54
59
- name : Find the last open report issue
55
- if : steps.lychee.outputs.exit_code != 0
60
+ if : |
61
+ steps.lychee.outputs.exit_code != 0
62
+ && inputs.create_issue
56
63
id : last-issue
57
64
uses : micalevisk/last-issue-action@v2
58
65
with :
59
66
state : open
60
67
labels : link-checker
61
68
62
69
- name : Update or create issue report
63
- if : steps.lychee.outputs.exit_code != 0 && steps.last-issue.outputs.has-found == 'true'
70
+ if : |
71
+ steps.lychee.outputs.exit_code != 0
72
+ && steps.last-issue.outputs.has-found == 'false'
73
+ && inputs.create_issue
64
74
uses : peter-evans/create-issue-from-file@v5
65
75
with :
66
- title : Link Checker Report
76
+ title : Broken links detected in docs 🔗
67
77
content-filepath : ./lychee/out.md
68
78
issue-number : ${{ steps.last-issue.outputs.issue-number }}
79
+ token : ${{secrets.GITHUB_TOKEN}}
69
80
labels : link-checker
81
+
82
+ - name : Comment Broken Links on PRs
83
+ if : github.event_name == 'pull_request'
84
+ uses : marocchino/sticky-pull-request-comment@v2
85
+ with :
86
+ path : lychee/out.md
0 commit comments