ci: run backend tests for provider bundle changes - #14606
Conversation
The `python` path filter never learned about `src/bundles/**` after the bundle metapackage split. Since #13614 gated `test-backend` on `path-filter.outputs.python == 'true'`, a PR that only touches a provider bundle reports `python=false` and skips the entire backend suite - including the bundle's own tests under `src/bundles/*/tests/`. Add `src/bundles/**` to the `python` filter so bundle-only PRs run the backend suite (and `test-templates`, which shares the same output).
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan includes up to 10 reviews per rolling hour; 7 remain after this review. WalkthroughThe Python change-detection filter now includes ChangesPython Change Detection
Estimated code review effort: 1 (Trivial) | ~2 minutes Merge Risk: ⚪ Minimal · up to This change makes backend and template checks run for provider-bundle-only updates; no actionable merge-blocking risk remains beyond normal checks and review. Important Pre-merge checks failedPlease resolve all errors before merging. Addressing warnings is optional. ❌ Failed checks (1 error)
✅ Passed checks (8 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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 |
✅ Test Coverage AdvisorNo source changes detected without accompanying tests. Thanks for keeping coverage up! 🎉
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## release-1.12.0 #14606 +/- ##
==================================================
- Coverage 64.96% 59.09% -5.88%
==================================================
Files 2456 2417 -39
Lines 251060 241666 -9394
Branches 34946 19890 -15056
==================================================
- Hits 163102 142802 -20300
- Misses 85893 96800 +10907
+ Partials 2065 2064 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
Summary
Adds
src/bundles/**to thepythonpath filter in.github/changes-filter.yaml.Why
.github/workflows/ci.ymlgates the backend suite on thepythonfilter:That gate was added in #13614 (2026-06-15) to stop frontend-only PRs from paying for the backend suite. But the
pythonfilter still lists onlysrc/backend/**,src/lfx/**,pyproject.tomlanduv.lock— it never learned aboutsrc/bundles/**after the bundle metapackage split.So a PR that only touches a provider bundle resolves
python=falseand skips the entire backend suite, including the bundle's own tests undersrc/bundles/*/tests/.Before the gate landed, this was invisible: #13514 changed exactly two files —
src/bundles/ibm/.../db2_vector.pyandsrc/bundles/ibm/tests/test_db2_vector.py— and still ran all 17 backend jobs, becausetest-backendwas then gated only ondocs-only != 'true'. The same PR today would run none of them, and the test file it modified would never execute.Bundle PRs that happen to touch
uv.lockorpyproject.toml(most new bundles do) still match the filter, which is why this hasn't bitten yet — but any edit confined to an existing bundle's Python silently loses backend coverage.Blast radius
path-filter.outputs.pythonhas four consumers inci.yml:test-backendtest-templatesdocs-onlycomputationdocs-onlyharder to be true; cannot mis-skipCI SuccessechoNo effect on Playwright shard selection — that is driven by the separate suite filters (
components,workspace,api, …), which are deliberately left alone here. See the note below.Deliberately not changed
I also considered adding
src/bundles/**to thecomponentssuite filter, but that would reduce coverage. When no suite matches,typescript_test.ymlfalls through to@release:So bundle-only PRs already get the full
@releasesuite (~411 tests, 70 shards — #13514 ran 64 shards under the smaller suite of the time). Mapping bundles tocomponentswould narrow that to@components(~73 tests, 16 shards). The frontend side is already behaving conservatively and is left as-is.Two adjacent gaps, both out of scope here:
dockerfilter also omitssrc/bundles/**, so bundle-only PRs skiptest-dockereven though bundles ship in the full image.scripts/check_changes_filter.py(the "Validate Filter Coverage" step) only inspects paths undersrc/frontend/, which is why no one was told about this. Widening it tosrc/bundles/would catch the next instance.Validation
.github/changes-filter.yamlparses;pythonlist containssrc/bundles/**.ci.ymlthat all fouroutputs.pythonconsumers behave as tabulated above.Summary by CodeRabbit