Skip to content
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

ref(mergify): use the new configuration format and keys #9018

Merged
merged 1 commit into from
Nov 14, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 31 additions & 34 deletions .github/mergify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,34 +3,42 @@
# This file can be edited and validated using:
# https://dashboard.mergify.com/github/ZcashFoundation/repo/zebra/config-editor

queue_rules:
- name: urgent
# Provides a means to set configuration values that act as fallbacks
# for queue_rules and pull_request_rules
defaults:
actions:
squash:
# TODO: Adapt our PR template to use title+body
commit_message: all-commits

queue_rule:
# Allow to update/rebase the original pull request if possible to check its mergeability,
# and it does not create a draft PR if not needed
allow_inplace_checks: True
allow_checks_interruption: False
speculative_checks: 1
batch_size: 8
# Wait a short time to embark hotfixes together in a merge train
batch_max_wait_time: "2 minutes"
conditions:
batch_size: 20
# Wait for about 10% of the time it takes Rust PRs to run CI (~1h)
batch_max_wait_time: "10 minutes"
queue_conditions:
# Mergify automatically applies status check, approval, and conversation rules,
# which are the same as the GitHub main branch protection rules
# https://docs.mergify.com/conditions/#about-branch-protection
- base=main

# Allows to define the rules that reign over our merge queues
queue_rules:
- name: urgent
batch_size: 8
# Wait a short time to embark hotfixes together in a merge train
batch_max_wait_time: "2 minutes"

- name: batched
allow_inplace_checks: True
allow_checks_interruption: True
speculative_checks: 1
batch_size: 20
# Wait for about 10% of the time it takes Rust PRs to run CI (3h)
batch_max_wait_time: "20 minutes"
conditions:
- base=main

# Rules that will determine which priority a pull request has when entering
# our merge queue
#
# These rules are checked in order, the first one to be satisfied applies
pull_request_rules:
priority_rules:
- name: move to urgent queue when CI passes with multiple reviews
conditions:
# This queue handles a PR if it:
Expand All @@ -45,10 +53,8 @@ pull_request_rules:
- -draft
# does not include the do-not-merge label
- label!=do-not-merge
actions:
queue:
name: urgent
method: squash
allow_checks_interruption: true
priority: high

- name: move to urgent queue when CI passes with 1 review
conditions:
Expand All @@ -62,12 +68,9 @@ pull_request_rules:
- base=main
- -draft
- label!=do-not-merge
actions:
queue:
name: urgent
method: squash
priority: high

- name: move to batched queue when CI passes with multiple reviews
- name: move to medium queue when CI passes with multiple reviews
conditions:
# This queue handles a PR if it:
# has multiple approving reviewers
Expand All @@ -77,12 +80,9 @@ pull_request_rules:
- base=main
- -draft
- label!=do-not-merge
actions:
queue:
name: batched
method: squash
priority: medium

- name: move to batched queue when CI passes with 1 review
- name: move to low queue when CI passes with 1 review
conditions:
# This queue handles a PR if it:
# has at least one approving reviewer (branch protection rule)
Expand All @@ -93,7 +93,4 @@ pull_request_rules:
- base=main
- -draft
- label!=do-not-merge
actions:
queue:
name: batched
method: squash
priority: low