feat(ci): add changed-file scoped test selection with full-suite fallback (#243)#274
Conversation
d412620 to
95715bc
Compare
utksh1
left a comment
There was a problem hiding this comment.
Requesting changes. The selective CI idea is useful, but this needs to be rebased after the benchmark CI changes and documented so required checks do not get accidentally skipped or hidden. Please also cover PR, push, docs-only, and shared-config cases clearly.
|
Hey @utksh1 Rebased onto latest main. |
|
Thanks for following up. Clarifying the change request so it is actionable: Why this is blocked: What to do next:
|
utksh1
left a comment
There was a problem hiding this comment.
Re-reviewed latest state. The selective CI logic is still risky for required checks because jobs can be skipped based on changed files. Please document the branch protection behavior clearly and ensure docs-only, workflow/config, PR, push, and shared-file changes cannot hide required backend/frontend checks unexpectedly.
|
Re-reviewed after the latest push. Still blocked: changed-file selective CI must not hide required backend/frontend checks. Please document branch protection behavior clearly and prove docs-only, workflow/config, PR, push, and shared-file changes still produce the expected required checks. |
|
Hey @utksh1 The selective skipping is now only active on To be absolutely sure, I added a Let me know if this looks better. |
utksh1
left a comment
There was a problem hiding this comment.
Thanks for the CI test-selection update. This still needs cleanup before merge. The PR includes ci_proof.txt, which looks like a proof/debug artifact and should not be committed. More importantly, the workflow now conditionally skips backend/frontend jobs, so branch protection can be weakened unless required checks are replaced by stable no-op/success jobs or the existing required job names always report. Please remove the proof artifact and document/test the required-check behavior for docs-only/backend-only/frontend-only PRs so protected branches do not get stuck or bypassed.
utksh1
left a comment
There was a problem hiding this comment.
Re-reviewed after the latest updates and maintainer cleanup. The generated proof artifacts are removed, PR events force the full backend/frontend suite so required checks are not skipped, push events keep selective behavior, selector tests pass, and the refreshed CI suite is green. Good to merge.
Hey @utksh1 .
Description
This PR resolves #243 by introducing a production-grade CI optimization pipeline. It adds a deterministic file classification script
select_tests.pythat maps changed files to frontend/backend/plugin test subsets, allowing GHA to run fast checks first and skip slow builds/tests where possible, while maintaining a safe fallback to the full suite for shared or configuration edits.Related Issues
Closes #243
Type of Change
How Has This Been Tested?
testing/backend/unit/test_select_tests.pyto cover success, mixed, fallback, and empty file list paths.pytest testing/backend/unit/test_select_tests.py -v(100% passed)../testing/test_python.sh(all 349 tests passed).Checklist
🟢 GSSoC note – I’m a GSSoC contributor. All checks are passing; please add the
gssoc:approvedlabel when merging.