-
Notifications
You must be signed in to change notification settings - Fork 3.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mergify: support backports automation with labels (#16937)
- Loading branch information
Showing
7 changed files
with
234 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
.SILENT: | ||
MAKEFLAGS += --no-print-directory | ||
.SHELLFLAGS = -euc | ||
SHELL = /bin/bash | ||
|
||
####################### | ||
## Templates | ||
####################### | ||
## Mergify template | ||
define MERGIFY_TMPL | ||
|
||
- name: backport patches to $(BRANCH) branch | ||
conditions: | ||
- merged | ||
- base=main | ||
- label=$(BACKPORT_LABEL) | ||
actions: | ||
backport: | ||
assignees: | ||
- "{{ author }}" | ||
branches: | ||
- "$(BRANCH)" | ||
labels: | ||
- "backport" | ||
title: "[{{ destination_branch }}] {{ title }} (backport #{{ number }})" | ||
endef | ||
|
||
# Add mergify entry for the new backport label | ||
.PHONY: mergify | ||
export MERGIFY_TMPL | ||
mergify: BACKPORT_LABEL=$${BACKPORT_LABEL} BRANCH=$${BRANCH} PUSH_BRANCH=$${PUSH_BRANCH} | ||
mergify: | ||
@echo ">> mergify" | ||
echo "$$MERGIFY_TMPL" >> ../.mergify.yml | ||
git add ../.mergify.yml | ||
git status | ||
if [ ! -z "$$(git status --porcelain)" ]; then \ | ||
git commit -m "mergify: add $(BACKPORT_LABEL) rule"; \ | ||
git push origin $(PUSH_BRANCH) ; \ | ||
fi | ||
|
||
# Create GitHub backport label | ||
.PHONY: backport-label | ||
backport-label: BACKPORT_LABEL=$${BACKPORT_LABEL} | ||
backport-label: | ||
@echo ">> backport-label" | ||
gh label create $(BACKPORT_LABEL) --description "Automated backport with mergify" --color 0052cc --force |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
name: mergify backport labels copier | ||
|
||
on: | ||
pull_request: | ||
types: | ||
- opened | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
mergify-backport-labels-copier: | ||
runs-on: ubuntu-latest | ||
if: startsWith(github.head_ref, 'mergify/bp/') | ||
permissions: | ||
# Add GH labels | ||
pull-requests: write | ||
# See https://github.com/cli/cli/issues/6274 | ||
repository-projects: read | ||
steps: | ||
- uses: elastic/oblt-actions/mergify/labels-copier@v1 | ||
with: | ||
excluded-labels-regex: "^backport-*" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
name: pre-commit | ||
|
||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- main | ||
- 8.* | ||
- 9.* | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
pre-commit: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: elastic/oblt-actions/pre-commit@v1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
pull_request_rules: | ||
- name: ask to resolve conflict | ||
conditions: | ||
- conflict | ||
actions: | ||
comment: | ||
message: | | ||
This pull request is now in conflicts. Could you fix it @{{author}}? 🙏 | ||
To fixup this pull request, you can check out it locally. See documentation: https://help.github.com/articles/checking-out-pull-requests-locally/ | ||
``` | ||
git fetch upstream | ||
git checkout -b {{head}} upstream/{{head}} | ||
git merge upstream/{{base}} | ||
git push upstream {{head}} | ||
``` | ||
- name: notify the backport policy | ||
conditions: | ||
- -label~=^backport | ||
- base=main | ||
actions: | ||
comment: | ||
message: | | ||
This pull request does not have a backport label. Could you fix it @{{author}}? 🙏 | ||
To fixup this pull request, you need to add the backport labels for the needed | ||
branches, such as: | ||
* `backport-8./d` is the label to automatically backport to the `8./d` branch. `/d` is the digit. | ||
* `backport-8.x` is the label to automatically backport to the `8.x` branch. | ||
- name: add backport-8.x for the all the PRs targeting main if no skipped or assigned already | ||
conditions: | ||
- -label~=^(backport-skip|backport-8.x)$ | ||
- base=main | ||
actions: | ||
comment: | ||
message: | | ||
`backport-8.x` has been added to help with the transition to the new branch `8.x`. | ||
If you don't need it please use `backport-skip` label. | ||
label: | ||
add: | ||
- backport-8.x | ||
|
||
- name: remove backport-skip label | ||
conditions: | ||
- label~=^backport-\d | ||
actions: | ||
label: | ||
remove: | ||
- backport-skip | ||
|
||
- name: remove backport-8.x label if backport-skip is present | ||
conditions: | ||
- label~=^backport-skip | ||
actions: | ||
label: | ||
remove: | ||
- backport-8.x | ||
|
||
- name: notify the backport has not been merged yet | ||
conditions: | ||
- -merged | ||
- -closed | ||
- author=mergify[bot] | ||
- "#check-success>0" | ||
- schedule=Mon-Mon 06:00-10:00[Europe/Paris] | ||
actions: | ||
comment: | ||
message: | | ||
This pull request has not been merged yet. Could you please review and merge it @{{ assignee | join(', @') }}? 🙏 | ||
- name: backport patches to 8.x branch | ||
conditions: | ||
- merged | ||
- base=main | ||
- label=backport-8.x | ||
actions: | ||
backport: | ||
assignees: | ||
- "{{ author }}" | ||
branches: | ||
- "8.x" | ||
labels: | ||
- "backport" | ||
title: "[{{ destination_branch }}] {{ title }} (backport #{{ number }})" | ||
|
||
- name: backport patches to 8.16 branch | ||
conditions: | ||
- merged | ||
- base=main | ||
- label=backport-8.16 | ||
actions: | ||
backport: | ||
assignees: | ||
- "{{ author }}" | ||
branches: | ||
- "8.16" | ||
labels: | ||
- "backport" | ||
title: "[{{ destination_branch }}] {{ title }} (backport #{{ number }})" | ||
|
||
- name: backport patches to 8.17 branch | ||
conditions: | ||
- merged | ||
- base=main | ||
- label=backport-8.17 | ||
actions: | ||
backport: | ||
assignees: | ||
- "{{ author }}" | ||
branches: | ||
- "8.17" | ||
labels: | ||
- "backport" | ||
title: "[{{ destination_branch }}] {{ title }} (backport #{{ number }})" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
repos: | ||
- repo: https://github.com/pre-commit/pre-commit-hooks | ||
rev: v4.6.0 | ||
hooks: | ||
- id: check-merge-conflict | ||
args: ['--assume-in-merge'] |