Skip to content

Fail website check run on spelling and image-size errors - #365

Merged
glenn-jocher merged 1 commit into
mainfrom
fix-website-check-status
Oct 6, 2026
Merged

glenn-jocher merged 1 commit into
mainfrom
fix-website-check-status

Conversation

@glenn-jocher

@glenn-jocher glenn-jocher commented Oct 6, 2026 •

Copy link
Copy Markdown
Member

Summary

  • links.yml spelling and image-size steps had continue-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.
  • Remove continue-on-error from 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).
  • Delete dead config from both link workflows:
    • the community.ultralytics.com wait branch (not in the matrix)
    • rm -rf .lycheecache (lychee only caches with --cache)
    • --exclude-path './**/ci.yml' (no ci.yml in the repo or the downloaded sites)
    • the grep -v chain ahead of the 4xx test, which could never change the result
    • an unused requests.Session in check_image_sizes.py

Slack 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

  • Removed continue-on-error from the spelling and image-size checks in links.yml.
  • Made spelling and broken-link checks run unless the workflow is cancelled, provided website download succeeded.
  • Removed unused link-check exclusions, cache cleanup commands, a dead website-specific wait branch, and an unused requests.Session.
  • Simplified the broken-link check to detect remaining 4xx errors directly.

🎯 Purpose & Impact

  • Spelling and image-size failures now fail the website-check run; the PR context states these failures are reflected in the badge.
  • Slack alert conditions are unchanged.

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.
@UltralyticsAssistant UltralyticsAssistant added devops GitHub Devops or MLops fixed Bug has been resolved labels Oct 6, 2026
@UltralyticsAssistant

Copy link
Copy Markdown
Member

👋 Hello @glenn-jocher, thank you for submitting a ultralytics/docs 🚀 PR! This automated message confirms your contribution was received, and an Ultralytics engineer will assist with the review. To ensure a seamless integration of your work, please review the following checklist:

  • ✅ Define a Purpose: Clearly explain the purpose of your fix or feature in your PR description, and link to any relevant issues. Ensure your commit messages are clear, concise, and adhere to the project's conventions.
  • ✅ Synchronize with Source: Confirm your PR is synchronized with the ultralytics/docs main branch. If it's behind, update it by clicking the 'Update branch' button or by running git pull and git merge main locally.
  • ✅ Ensure CI Checks Pass: Verify all Ultralytics Continuous Integration (CI) checks are passing. If any checks fail, please address the issues.
  • ✅ Update Documentation: Update the relevant documentation for any new or modified features.
  • ✅ Add Tests: If applicable, include or update tests to cover your changes, and confirm that all tests are passing.
  • ✅ Sign the CLA: Please ensure you have signed our Contributor License Agreement if this is your first Ultralytics PR; the CLA check will comment with signing instructions if needed.
  • ✅ Minimize Changes: Limit your changes to the minimum necessary for your bug fix or feature addition. "It is not daily increase but daily decrease, hack away the unessential. The closer to the source, the less wastage there is." — Bruce Lee

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 UltralyticsAssistant left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 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:120 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.


- 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) }}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@glenn-jocher
glenn-jocher merged commit 3ff75e3 into main Oct 6, 2026
10 checks passed
@glenn-jocher
glenn-jocher deleted the fix-website-check-status branch October 6, 2026 14:03
@UltralyticsAssistant

Copy link
Copy Markdown
Member

🎉 PR #365 has been merged—thank you, @glenn-jocher!

“Well done is better than well said.” — Benjamin Franklin

With spelling and image-size errors now failing the workflow, website-check results reflect these issues instead of treating them as non-blocking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

devops GitHub Devops or MLops fixed Bug has been resolved

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants