ci(#5455): stop non-ok-to-test labels cancelling e2e runs - #5457
Conversation
Align cancel-in-progress with the gate job filter so labeled events for ready-for-review and similar no longer cancel an in-progress opened/synchronize run before authorization can complete. Signed-off-by: Barak Korren <bkorren@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
PR Summary by QodoCI: prevent non-ok-to-test labels from canceling E2E runs
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
|
🤖 Finished Review · ✅ Success · Started 10:17 AM UTC · Completed 10:28 AM UTC |
Site previewPreview: https://40a8b9d3-site.fullsend-ai.workers.dev Commit: |
|
I have been hit by this, thanks for the fix. |
Code Review by Qodo
1. Guide under docs/guides/dev/
|
ReviewFindingsMedium
Previous runReviewFindingsMedium
Previous run (2)ReviewFindingsMedium
Labels: PR modifies CI workflow files for e2e and functional tests |
waynesun09
left a comment
There was a problem hiding this comment.
Overall this is a small, well-scoped, and logically correct fix. I traced the full event x action matrix (push, merge_group, workflow_dispatch, and pull_request_target x {opened, synchronize, reopened, labeled+ok-to-test, labeled+other}) and confirmed the new cancel-in-progress expression behaves identically to the old one except for the intended case, and matches the gate: job's if: filter it's meant to mirror. e2e.yml and functional-tests.yml received identical changes.
One process note worth flagging: because pull_request_target always executes the workflow file from the base branch, this PR's own CI checks can never exercise the new logic before merge -- only the old, unfixed expression on main. The "Manual verification" checkbox in the description is unchecked accordingly, which tracks. This isn't a defect in the PR, just worth confirming after merge: while this was under review, three non-ok-to-test labels landed on this PR one second apart (10:28:37-39 UTC), and the resulting E2E runs (#6925, #6926) cancelled each other in quick succession under the current main logic (10:28:40-42 UTC) -- a live reproduction of #5455's exact failure mode. Worth deliberately re-running that scenario once this lands on main to confirm the fix holds in practice.
Left two inline suggestions on the cancel-in-progress expressions (defensive parens) and one on the docs update (mention the queued/skipped run and the sticky-comment gap) -- none blocking, all follow-ups/polish.
Signed-off-by: Barak Korren <bkorren@redhat.com>
…skip docs Address review feedback: wrap the outer (A && B) || (C && D) grouping explicitly in both workflows, and document that non-actionable labeled events still create skipped runs without posting an e2e-gate comment. Signed-off-by: Barak Korren <bkorren@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
|
🤖 Finished Review · ✅ Success · Started 12:58 PM UTC · Completed 1:10 PM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Approving — the fix is logically correct (re-verified this round with a fresh independent pass, including a second model), and both issues from the first review round are genuinely fixed in 35371c5 (defensive parens on cancel-in-progress, and the docs clarification distinguishing gate-skipped from gate-rejected).
One item from the first round remains open and can't really be resolved before merge: because pull_request_target always executes the base branch's workflow file, this PR's own CI never exercises the new logic — the "Manual verification" checkbox is still unchecked. Not a blocker (it's inherent to this class of change), but worth deliberately re-running the #5455 scenario once this lands on main.
Left two more inline notes, both non-blocking:
- A doc wording precision issue — the new "finishes quickly as skipped" text undersells what happens when the concurrency group isn't idle.
- A note that the duplicated actionable-filter logic across both workflows has no safeguard against future drift beyond a comment — fine for now, worth a lint check if a third workflow ever adopts this pattern.
… guide Non-actionable labeled events queue behind an active run and may show as cancelled when several labels land in a burst; the original run is still not cancelled. Signed-off-by: Barak Korren <bkorren@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
|
🤖 Finished Review · ✅ Success · Started 2:12 PM UTC · Completed 2:25 PM UTC |
|
🤖 Finished Retro · ✅ Success · Started 6:41 PM UTC · Completed 6:53 PM UTC |
Retro: PR #5457 — stop non-ok-to-test labels cancelling e2e runsTimeline
Review quality gapThe review agent ran 3 times (15 sub-agent invocations total) and produced zero actionable technical findings beyond the protected-path policy flag. The human reviewer found 5 actionable items spanning code quality (operator precedence / defensive parentheses), documentation accuracy (oversimplified description of run states), and maintainability (duplicated filter logic with no automated sync enforcement). The correctness sub-agent did extensive work — searched for What worked well
Evidence for existing issues (not proposed as new issues)
Proposals filed
|
Summary
cancel-in-progressin E2E and Functional Tests workflows with the existing gate filter so non-ok-to-testlabeledevents (e.g.ready-for-review) no longer cancel an in-progressopened/synchronizerun.Related Issue
Closes #5455
Changes
.github/workflows/e2e.yml— only cancel for actionable PR events.github/workflows/functional-tests.yml— same changedocs/guides/dev/e2e-testing.md— note that other labels neither authorize nor cancelTesting
make lint(pre-commit) passed on staged filesready-for-reviewshould leave the initial e2e run runningChecklist
if:andcancel-in-progressuse the same actionable filterMade with Cursor