Skip to content

Merge Queue Notes

John McDole edited this page Oct 10, 2024 · 1 revision

To get merge queues working:

  1. Setup branch rules with Require merge queue and Require status checks to pass (with our github actions selected)

(this was a head scratcher for me since PRs were getting merged before the failing tests finished!)

merge queue status checks
Screenshot 2024-10-09 174443 Screenshot 2024-10-09 174434
  1. Create one (or more) workflows; see:
  2. merge queue dart_mq.yml
  3. presubmit dart_prtest.yml

Question 1: What happens when the "middle" PR fails

In the GitHub examples, they only talk about the first PR failing and being removed.. but what if the first one passes, does it retest?

Answer: No, it merges to head! The subsequent PRs are removed, the second (failing) is removed, the third (failing because it includes the second pr) is retested and later merges!

Three PR's in the queue: Three PRs in the merge queue

The second PR fails. The PR status page says it has failed and offers some information, but the button to remerge is still green (?) - we need to be vigilant around this.

Second PR fails Second PR removed

The third PR gets rescheduled. Not shown here: the merge queue did show it as failing, but that's because it included the second pr's changes that were failing. The PR's page does not show the gory details of being re-added and re-testing. Third PR rescheduled Third PR showing its still testing

The first PR just landed, as if the queue wasn't there. Neat!

Clone this wiki locally