fix(ci): raise lychee timeout and retries - #728
Merged
Merged
Conversation
A timeout fails the run even though lychee counts it apart from errors, so one slow host turns the weekly sweep red with zero broken links. Every red run so far has been the same Authelia URL, which answers instantly from an ordinary client and stalls only from Actions runners. Closes #727
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The weekly Link Check has been failing on a summary that looks like a pass:
lychee counts a timeout as a failure and exits 2, so one slow host turns the
run red with no broken links. All three red runs report the same single URL and
nothing else:
https://www.authelia.com/integration/proxies/traefik/, linkedfrom
website/docs/guides/sso-proxy-auth.md:137.The link is not broken. It answers 200 in 0.2-0.4s on both HEAD and GET from an
ordinary client, so this is specific to Actions runner IPs. It is also
intermittent rather than a hard block: a dispatch on 6 August passed with zero
timeouts about twenty minutes after a PR run failed on the same URL.
Closes #727
Changes
timeout20 to 45,max_retries2 to 3,retry_wait_time2 to 3.Worst case for one bad link becomes roughly three minutes, inside the job's
timeout-minutes: 8. lychee checks concurrently and only this one link isslow, so normal runtime is unchanged.
Testing
Link Check runs on this PR, since its trigger includes
lychee.toml. That isthe real test: it exercises the actual host from an actual runner. Given the
failure is intermittent, one green run is not conclusive, so I re-dispatched it
several times before merging.
If it turns out 45s is still not enough, the follow-up is to exclude the host
with a comment recording that it is unreliable from runners and that the link
was verified good by hand. Excluding it is the fallback rather than the opening
move, because it means the repo stops noticing if Authelia ever moves the page.
Type of Change
fix:)feat:)refactor:)docs:)ci:)chore:)Checklist
Closes #Ntype:*and onepriority:*labelphase:*label (or none when not roadmap work)feat/<slug>,fix/<slug>, etc.)mypy src/) — N/A, no Python changedruff check .) — N/A, no Python changedruff format --check .) — N/A, no Python changed