-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ensure master
only receives commits that have successfully build/tested on top of master
#7130
Comments
Specifically,
Qs:
Prior art:
Closing thoughts: |
master
receives commits that have successfully build/tested on top of master
master
receives commits that have successfully build/tested on top of master
master
only receives commits that have successfully build/tested on top of master
P.S.: I updated the issue title to be action-oriented. |
Staging is effectively master-"next". The automation would just fast-forward.
PRs would be directly merged into staging. If something fails, we'd back out and re-merge everything else. We can also test merges in parallel, so there's no real blocking.
GitHub already has this ("require PRs to be up-to-date" and a "update branch button"). We tried it, and disabled it, because it makes merging a sequence of PRs painful (many round-trips). This is, in fact the motivation for this issue (see the main issue body). |
Current State:
We have seen examples like this:
Our current suggestion to rebase master into the PR manually before merging, verifying build/tests pass, and then merge.
This is different than:
because that check requires PRs to be completely up-to-date with master and doesn't allow any discretion. The issue with requiring that every branch to become completely up to date is that we need to go around either manually rebasing, or clicking the "update branch" button every time a PR is merged. Merging 3 PRs means merging the first, waiting for CI to re-run on the second, merging it, waiting for CI to re-run on the third, merging it.
Proposal
The staging idea was basically a more automatic "require branches to be up to date". The idea was to let a staging branch test PRs against the latest master (and possibly run more extensive/slow tests). When tests pass on staging, master would be fast-forwarded to the last commit on staging with passing tests. If tests fail, automation would need to roll back to the last passing merge and re-build staging.
The text was updated successfully, but these errors were encountered: