CI: Add Lychee CI test to check for broken links
closes: #17879 Signed-off-by: Damien Lejay <damien@lejay.be> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
32d6bd6df2
commit
e32465190c
15
.github/workflows/link-check.yml
vendored
Normal file
15
.github/workflows/link-check.yml
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
# .github/workflows/link-check.yml
|
||||
name: Check Links
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 3 * * 0' # Every Sunday at 03:00 UTC
|
||||
jobs:
|
||||
lychee:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Run Lychee
|
||||
uses: lycheeverse/lychee-action@v2
|
||||
with:
|
||||
args: --verbose --config ci/lychee.toml .
|
2
Filelist
2
Filelist
@ -12,6 +12,7 @@ SRC_ALL = \
|
||||
.github/workflows/ci.yml \
|
||||
.github/workflows/codeql-analysis.yml \
|
||||
.github/workflows/coverity.yml \
|
||||
.github/workflows/link-check.yml \
|
||||
.github/actions/test_artifacts/action.yml \
|
||||
.github/dependabot.yml \
|
||||
.gitignore \
|
||||
@ -24,6 +25,7 @@ SRC_ALL = \
|
||||
ci/config.mk*.sed \
|
||||
ci/if_ver*.vim \
|
||||
ci/if_feat_check.vim \
|
||||
ci/lychee.toml \
|
||||
ci/setup-xvfb.sh \
|
||||
ci/setup-sway.sh \
|
||||
ci/remove_snap.sh \
|
||||
|
47
ci/lychee.toml
Normal file
47
ci/lychee.toml
Normal file
@ -0,0 +1,47 @@
|
||||
############################# Runtime #############################
|
||||
|
||||
# Reasonable concurrency to avoid rate-limiting small hosts.
|
||||
max_concurrency = 14
|
||||
|
||||
# File extensions to scan
|
||||
extensions = ["c", "h", "md", "html", "txt"]
|
||||
|
||||
############################# Requests ############################
|
||||
|
||||
# Accepted status codes
|
||||
# - Include 429 (Too Many Requests) to avoid marking throttled links as dead.
|
||||
accept = ["100..=103", "200..=299", "429"]
|
||||
|
||||
# Retry each request a few times on transient network errors
|
||||
retries = 2
|
||||
retry_wait_time = 2
|
||||
|
||||
# Timeout per request in seconds
|
||||
timeout = 20
|
||||
|
||||
############################# Exclusions ##########################
|
||||
|
||||
exclude = [
|
||||
'^https?://sys/file$',
|
||||
'^file://.*',
|
||||
'^https?://(www\.)?badges\.debian\.net/.*$',
|
||||
'^https?://(www\.)?repology\.org/.*$',
|
||||
'^https?://scan\.coverity\.com/.*$',
|
||||
'^https?://(www\.)?img\.shields\.io/.*$',
|
||||
'^https?://(www\.)?fossies\.org/.*$',
|
||||
'^https?://(www\.)?adobe\.com.*$',
|
||||
'^https?://(www\.)?google\.com.*$',
|
||||
'^https?://(www\.)?forum\.vmssoftware\.com/.*$',
|
||||
'^http://vim\.sourceforge\.net/scripts/script\.php\?script_id=40$',
|
||||
'^https://is\.gd/.*$',
|
||||
'^https://wiki\.contextgarden\.net/Vim$',
|
||||
'^https://github\.com/you/foobar\.git$',
|
||||
'^https?://flatassembler\.net',
|
||||
'^https?://www\.fleiner\.com/vim/download.html',
|
||||
]
|
||||
|
||||
# Lychee only reads UTF-8 files
|
||||
exclude_path = [
|
||||
'src/po',
|
||||
'src/testdir',
|
||||
]
|
Reference in New Issue
Block a user