status-im / status-go

The Status module that consumes go-ethereum
https://status.im
Mozilla Public License 2.0
727 stars 249 forks source link

Setup a merging queue with commit message checks #5610

Open igor-sirotin opened 3 months ago

igor-sirotin commented 3 months ago

Problem

Recently we merged #5596 with Squash and Merge feature. It formed this f05b7e793dfd500d72ca92d08e1ab5e7ee5576ed with message:

[CHERRY-PICK] PRs #5581 #5557 (#5596)

And now all PR's on top of it are not passing the commit message check:

https://ci.status.im/blue/organizations/jenkins/status-go%2Fprs%2Ftests/detail/PR-5608/2/pipeline/

Solution

We need to ensure that suqash/merge commits also have proper message. I believe merging queue should help us with this. No need to run the whole CI, just the commit message check.

https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-a-merge-queue

igor-sirotin commented 3 months ago

cc @siddarthkay do you think it's possible to implement?

siddarthkay commented 3 months ago

Seems doable. I'll take a stab at this.

siddarthkay commented 3 months ago

ouch

A merge queue cannot be enabled with branch protection rules that use wildcard characters (*) in the branch name pattern.

Screenshot 2024-07-29 at 7 20 52 PM
igor-sirotin commented 3 months ago

Hmm. Can we make the merge queue at least for develop for now? Or does it require to remove branch protection wildcard rules at all? cc @siddarthkay

siddarthkay commented 3 months ago

currently testing this on a small repo, I'll get back to you with more info.

igor-sirotin commented 2 months ago

@siddarthkay this is actually important on our way of proper work with breaking changes. Otherwise it's too simple to make a PR with unknown format in the develop branch 🤷