fix(ci): skip docs-only changes for Tests workflow - #1036
Conversation
Org-wide audit found ci.yml lacks paths-ignore, triggering full CI on every docs-only push/PR and adding to org Actions queue congestion. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Warning Review limit reachedNext included review available in 44 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| paths-ignore: | ||
| - "docs/**" | ||
| - "*.md" |
There was a problem hiding this comment.
🟡 Documentation contracts bypass their tests
Docs-only changes make paths-ignore suppress tests that validate those same files. Broken API, database, and release contracts can merge undetected.
Prompt for agents
The Tests workflow now skips every PR whose changed files are all under docs/** or are root Markdown files. However, the pytest suite treats many of those files as executable contracts: tests/test_plugin_driven_artifacts.py validates README.md and numerous docs files; tests/test_repository_security_metadata.py validates README.md, SECURITY.md, and docs/database_design.sql; tests/test_reasoning_effort_profile.py validates docs/architecture.md and docs/papers/README.md; and many commercial acceptance tests validate docs/*.md. Adjust the filtering strategy so documentation changes still run the contract tests that consume the changed files, while avoiding unnecessary runtime-heavy jobs where possible. A separate lightweight docs-contract job or narrower ignore patterns can preserve the intended queue reduction.
Was this helpful? React with 👍 or 👎 to provide feedback.
What
Adds
paths-ignore(docs/**,*.md) to both thepushandpull_requesttriggers of.github/workflows/ci.yml(theTestsworkflow).Why
An org-wide audit of ContextualWisdomLab repos found that
ci.ymlhad no path filter, so every docs-only push/PR still ran the full pytest + NIM benchmark quality suite. Across the org this is a meaningful contributor to the Actions queue congestion (the shared 60-concurrent-job plan ceiling stays saturated with jobs that never needed to run for a docs edit).Safety check performed
required_status_checks.contexts) and both active rulesets (CWL Central required workflows,Lock default branch) onmain.ci.yml's job names (Full unit and contract suite,NIM benchmark coverage, docstrings, and package smoke) appears in the required classic status-check list — those required contexts (Hypothesis property tests,Atheris coverage-guided,CodeQL analysis,Python supply chain, ...) are produced byfuzz.ymlandsecurity.yml, which this PR does not touch.ci.ymlhad no pre-existingpaths-ignore/pathsfilter.yaml.safe_load).Only the
on.pushandon.pull_requesttriggers were touched;branches: [main]andworkflow_dispatchare preserved unchanged.🤖 Generated with Claude Code