CMO: add pipeline_skip_if_only_changed to second-stage tests and move ginkgo-tests to second-stage pipeline - #83434
CMO: add pipeline_skip_if_only_changed to second-stage tests and move ginkgo-tests to second-stage pipeline #83434machine424 wants to merge 3 commits into
Conversation
The org-wide LGTM pipeline rollout moved e2e jobs to second-stage using a name-based heuristic (jobs containing "e2e"). The ginkgo-tests job was missed because its name does not contain "e2e", but it provisions a full AWS cluster (workflow: ipi-aws) and is just as expensive. Set always_run: false for consistency with the other cluster-provisioning tests already in second-stage.
|
Important Review skippedReview was skipped due to path filters ⛔ Files ignored due to path filters (1)
CodeRabbit blocks several paths by default. You can override this behavior by explicitly including those paths in the path filters. For example, including ⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Central YAML (inherited) Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughThe change adds ChangesPipeline filtering
Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to This change only adjusts CI test scheduling and skip conditions; no actionable merge-blocking risk remains beyond normal checks and review. Suggested reviewers: 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Skip expensive and potentially flaky cluster-provisioning tests when a PR only touches non-functional files (docs, OWNERS, hack scripts, linter config, etc.). Job | Skips when only these change ---------------------------|-------------------------------------------- e2e-aws-ovn | docs, meta, hack/, test/* e2e-aws-ovn-techpreview | docs, meta, hack/, test/* e2e-aws-ovn-upgrade | docs, meta, hack/, test/* e2e-hypershift-conformance | docs, meta, hack/, test/* e2e-agnostic-operator | docs, meta, hack/, test/ext/, test/monitoring/, test/rules/ ginkgo-tests | docs, meta, hack/, test/e2e/, test/ext/, test/rules/ e2e-agnostic-operator runs make test-e2e (test/e2e/) so it still triggers on test/e2e/ changes. ginkgo-tests runs make test-ginkgo (test/monitoring/) so it still triggers on test/monitoring/ changes. Neither uses test/ext/ (external tests binary, shipped in image but not exercised by these jobs). The 4 image-only tests (e2e-aws-ovn, techpreview, upgrade, hypershift) skip all of test/. Analysis of the last 47 PRs to main (excluding 3 with 100+ files): Job | Triggers saved | Total | % ---------------------------|----------------|-------|---- e2e-aws-ovn | 63 | 238 | 26% e2e-aws-ovn-techpreview | 79 | 299 | 26% e2e-aws-ovn-upgrade | 58 | 195 | 30% e2e-hypershift-conformance | 62 | 228 | 27% e2e-agnostic-operator | 7 | 232 | 3% ginkgo-tests | 50 | 191 | 26% TOTAL | 319 | 1383 | 23% 319/1383 second-stage triggers (23%) would be eliminated. 14/47 PRs (30%) only touched docs/meta/hack and never needed second-stage testing. Heavy flake retesting amplifies the waste: skip-eligible PRs averaged ~23 triggers each.
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
make jobs
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: machine424 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
[REHEARSALNOTIFIER]
Interacting with pj-rehearseComment: Once you are satisfied with the results of the rehearsals, comment: |
|
/retest |
|
@machine424: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Summary
Two changes to improve CMO CI efficiency:
Move
ginkgo-teststo second-stage — it was the only e2e-class job still running as first-stage (always_run: true), despite spawning a full cluster. Aligns with all other e2e tests already in second-stage.Add
pipeline_skip_if_only_changedto all 6 second-stage tests — skip expensive cluster-provisioning tests when a PR only touches non-functional files (docs, OWNERS, hack scripts, linter config, etc.).Skip matrix
e2e-agnostic-operatorrunsmake test-e2e(sources intest/e2e/) → still triggers ontest/e2e/changesginkgo-testsrunsmake test-ginkgo(sources intest/monitoring/) → still triggers ontest/monitoring/changestest/ext/(external tests binary shipped in image, not exercised by these jobs)test/since they only test the deployed binaryImpact (measured from last 47 PRs to main)
14/47 PRs (30%) only touched docs/meta/hack and never needed second-stage testing. Skip-eligible PRs averaged ~23 triggers each due to flake retesting.
Test plan
ginkgo-testsnow appears as second-stage in pipeline controller comment