Skip to content

Commit e8df55e

Browse files
authored
chore(website): Update link checker to use Lychee (runatlantis#5337)
Signed-off-by: X-Guardian <[email protected]>
1 parent e98dc5f commit e8df55e

File tree

2 files changed

+18
-41
lines changed

2 files changed

+18
-41
lines changed

.github/workflows/website.yml

+13-41
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ concurrency:
2222
jobs:
2323
changes:
2424
outputs:
25-
should-run-link-check: ${{ steps.changes.outputs.src == 'true' }}
25+
should-run-website-check: ${{ steps.changes.outputs.src == 'true' }}
2626
if: github.event.pull_request.draft == false
2727
runs-on: ubuntu-24.04
2828
steps:
@@ -43,12 +43,10 @@ jobs:
4343
- '.github/workflows/website.yml'
4444
4545
# Check that the website builds and there's no missing links.
46-
# This job builds the website, starts a server to serve it, and then uses
47-
# muffet (https://github.com/raviqqe/muffet) to perform the link check.
48-
link-check:
46+
website-check:
4947
needs: [changes]
50-
if: github.event.pull_request.draft == false && needs.changes.outputs.should-run-link-check == 'true'
51-
name: Website Link Check
48+
if: github.event.pull_request.draft == false && needs.changes.outputs.should-run-website-check == 'true'
49+
name: Website Check
5250
runs-on: ubuntu-latest
5351
steps:
5452
- name: Harden Runner
@@ -64,20 +62,20 @@ jobs:
6462
config: .markdownlint.yaml
6563
globs: 'runatlantis.io/**/*.md'
6664

65+
- name: Link Checker
66+
id: lychee
67+
uses: lycheeverse/lychee-action@f613c4a64e50d792e0b31ec34bbcbba12263c6a6 # v2.3.0
68+
with:
69+
args: --verbose --no-progress ./runatlantis.io
70+
6771
- name: setup npm
6872
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
6973
with:
7074
node-version: '20'
7175
cache: 'npm'
7276

7377
- name: run http-server
74-
env:
75-
# renovate: datasource=github-releases depName=raviqqe/muffet
76-
MUFFET_VERSION: 2.10.7
7778
run: |
78-
# install raviqqe/muffet to check for broken links.
79-
curl -Ls https://github.com/raviqqe/muffet/releases/download/v${MUFFET_VERSION}/muffet_linux_amd64.tar.gz | tar -xz
80-
8179
# build site
8280
npm install
8381
npm run website:build
@@ -90,36 +88,10 @@ jobs:
9088
npx playwright install --with-deps
9189
npm run e2e
9290
93-
- name: wait until server listened
94-
run: curl --retry-delay 1 --retry 30 --retry-all-error http://localhost:8080
95-
96-
# medium.com => was being rate limited: HTTP 429
97-
# twitter.com => too many redirections
98-
# www.flaticon.com => 403 error
99-
# www.freepik.com => 403 error
100-
# ngrok.com => 406 error
101-
- run: |
102-
./muffet \
103-
-e 'https://medium.com/runatlantis' \
104-
-e 'https://dev.to/*' \
105-
-e 'https://twitter.com/*' \
106-
-e 'https://www.flaticon.com/*' \
107-
-e 'https://www.freepik.com/*' \
108-
-e 'https://ngrok.com/*' \
109-
-e 'https://github\.com/runatlantis/atlantis/edit/main/.*' \
110-
-e 'https://github.com/runatlantis/helm-charts#customization' \
111-
-e 'https://github.com/sethvargo/atlantis-on-gke/blob/master/terraform/tls.tf#L64-L84' \
112-
-e 'https://confluence.atlassian.com/*' \
113-
--header 'User-Agent: Muffet' \
114-
--header 'Accept-Encoding:deflate, gzip' \
115-
--buffer-size 8192 \
116-
--timeout 300 \
117-
http://localhost:8080/
118-
119-
skip-link-check:
91+
skip-website-check:
12092
needs: [changes]
121-
if: needs.changes.outputs.should-run-link-check == 'false'
122-
name: Website Link Check
93+
if: needs.changes.outputs.should-run-website-check == 'false'
94+
name: Website Check
12395
runs-on: ubuntu-latest
12496
steps:
12597
- name: Harden Runner

.lycheeignore

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Ignore file for the https://github.com/lycheeverse/lychee/ website link checker
2+
3+
# These sites have bot protection which causes a 403 Network error: Forbidden when checking
4+
https://www.freepik.com/
5+
https://www.flaticon.com/

0 commit comments

Comments
 (0)