Clarifying merge queue behavior with "Only merge non-failing pull requests" disabled #180420
Replies: 1 comment
-
|
Hi @timothycobrien, Here is my answer based on your scenarios The Core Logic Answer to Question 1: When does a failing PR get ejected?
Answer to Question 2: Group interactions (Group A vs. Group B)
Answer to Question 3: Mixed bag (#1 fails, #2 passes, #3 fails)
Summary
Hope this clarifies and help you something! |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Select Topic Area
Question
Body
I'm trying to understand exactly how merge queue handles failures when "Only merge non-failing pull requests" is disabled, particularly around group formation and PR ejection.
My understanding:
With the setting disabled, only the last PR in a group needs to pass for the group to merge
This is useful for flaky tests since a passing "last PR" validates the combined changeset
What I'm unclear on:
Question 1: When does a failing PR get ejected? I observed that a failing PR was removed from the queue after I manually removed the only PR behind it. This suggests "keep failing PRs around as long as there's a later PR that might pass." Is that accurate?
Question 2: How do groups interact with ejection? If max group size is 3:
Group A: PR #1, #2, #3
Group B: PR #4, #5, #6
If all 3 PRs in Group A fail, does the queue remove PR #1 from Group A once it's full? Or does it wait for Group B to also fail as long as those checks are still running?
The "Failing CI" section only describes behavior when "Only merge non-failing pull requests" is enabled. What happens when it's disabled and the last PR in the queue fails? Does it eventually get ejected, or does it persist as long as new PRs keep joining?
Question 3: Same scenario but PR #1 fails, PR #2 passes, PR #3 fails. What happens and when?
Trying to find the right balance between tolerating flaky tests and ensuring real bugs get ejected in a reasonable timeframe.
Beta Was this translation helpful? Give feedback.
All reactions