oppia / oppia-android

A free, online & offline learning platform to make quality education accessible for all.
https://www.oppia.org
Apache License 2.0
305 stars 505 forks source link

Integrate with GitHub merge queues #3926

Open BenHenning opened 2 years ago

BenHenning commented 2 years ago

From core maintainers chat:

https://github.com/github/roadmap/issues/272 could help solve two different problems that are particularly useful for us:

  1. It eliminates cases where two subsequent PRs together cause a CI breakage without conflicts preventing the second PR from being merged
  2. (Hopefully) If GitHub adds an event for entering the merge queue, we might be able to split off expensive or long-running CI tasks to be blockers of the merge queue rather than for each commit. This could speed up development without needing to sacrifice test fidelity since the longer test runs only occur during merging. This could be coupled with more aggressive retry policies to reduce flakes blocking PR merges.

We saw (1) happen a few times this summer, and (2) could be very useful for future screenshot testing, end-to-end tests in CI, and Espresso tests in CI (/cc @vinitamurthi).

BenHenning commented 2 years ago

Setting this up seems really straightforward: https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/using-a-merge-queue. Unfortunately, it only supports standard merging & rebase/merge currently, not squash & merge (which we use). We'll need to wait until squash support is added before opting into queue support (plus, it's in beta so we might not qualify for early access, anyway).

BenHenning commented 1 year ago

FWIW this has now been released to open beta (https://github.blog/changelog/2023-02-08-pull-request-merge-queue-public-beta/) and squash & merge is available. I'll look into enabling this so that we can lift the "require branches to be up-to-date" requirement.