Repository navigation
Fail website check run on spelling and image-size errors - #365
Conversation
Spelling and image-size steps used continue-on-error, so their failures alerted Slack but never failed the run or the status badge. Gate later checks on !cancelled() and a successful download instead, and delete dead config: the unused community.ultralytics.com wait branch, .lycheecache removal without --cache, the ci.yml exclude-path, redundant grep -v filters, and an unused requests.Session.
|
👋 Hello @glenn-jocher, thank you for submitting a
For more guidance, please refer to our Contributing Guide. Don't hesitate to leave a comment if you have any questions. Thank you for contributing to Ultralytics! 🚀 |
UltralyticsAssistant
left a comment
There was a problem hiding this comment.
🔍 PR Review
Made with ❤️ by Ultralytics Actions
Reviewed the website and local link workflows and image-size utility. The cleanup is otherwise consistent with the stated scope, but the download-success guards do not detect downloader failures because the step continues on error. Address that before relying on these checks to fail the run; partial downloads remain a risk.
💬 Posted 1 inline comment
- 💡 MEDIUM
.github/workflows/links.yml:120Download Websitestill hascontinue-on-error: true, so GitHub sets itsconclusiontosuccesseven whenwgetfails. These guards therefore still run spelling and link checks against a partial download, potentially letting the workflow pass without checking the full site. Checksteps.download.outcomeinstead in both this condition and the link-check condition; the image-size step is also currently allowed to run after a failed download.
|
|
||
| - name: Check spelling | ||
| if: github.event_name != 'workflow_dispatch' || inputs.check_spelling | ||
| if: ${{ !cancelled() && steps.download.conclusion == 'success' && (github.event_name != 'workflow_dispatch' || inputs.check_spelling) }} |
There was a problem hiding this comment.
💡 MEDIUM: Download Website still has continue-on-error: true, so GitHub sets its conclusion to success even when wget fails. These guards therefore still run spelling and link checks against a partial download, potentially letting the workflow pass without checking the full site. Check steps.download.outcome instead in both this condition and the link-check condition; the image-size step is also currently allowed to run after a failed download.
There was a problem hiding this comment.
Intentional, no change. wget exits non-zero whenever any sitemap URL errors (www hit exit code 8 on 2026-09-21 through 09-24), which is why Download Website keeps continue-on-error: the checks should run on the pages that did download, as they do on main today. Gating on outcome would skip the www spelling and link checks entirely on those days. conclusion == 'success' only means the download step ran, i.e. setup succeeded, so checks are skipped only when nothing was downloaded. The image-size step keeps its implicit success() gate, which is equivalent.
|
🎉 PR #365 has been merged—thank you, @glenn-jocher!
With spelling and image-size errors now failing the workflow, website-check results reflect these issues instead of treating them as non-blocking. |
Summary
links.ymlspelling and image-size steps hadcontinue-on-error: true, so their failures sent Slack alerts but never failed the run. The "Website links and spellcheck" badge only tracked link results. Example: on 2026-10-04 docs.ultralytics.com had spelling errors (VART, later fixed in Exclude VART from website spellcheck #363) while the run and badge stayed green.continue-on-errorfrom both checks. The spelling and link checks now use!cancelled() && steps.download.conclusion == 'success', so every check still runs after an earlier check fails, but none run after a setup failure (no spurious Slack alerts).community.ultralytics.comwait branch (not in the matrix)rm -rf .lycheecache(lychee only caches with--cache)--exclude-path './**/ci.yml'(noci.ymlin the repo or the downloaded sites)grep -vchain ahead of the 4xx test, which could never change the resultrequests.Sessionincheck_image_sizes.pySlack alert conditions are unchanged. The only behavior change is that spelling and image-size failures now fail the run and the badge.
🛠️ PR Summary
Made with ❤️ by Ultralytics Actions
🌟 Summary
Updated the website-check workflows so spelling and image-size errors fail the run instead of being reported as non-blocking errors.
📊 Key Changes
continue-on-errorfrom the spelling and image-size checks inlinks.yml.requests.Session.🎯 Purpose & Impact