From 4baa783d5e372380c64d538a153bc97640e8257c Mon Sep 17 00:00:00 2001 From: Michael D Kinney Date: Fri, 18 Oct 2019 15:22:36 -0700 Subject: [PATCH] .mergify: Add Mergify YML pull request rules configuration file https://bugzilla.tianocore.org/show_bug.cgi?id=2315 Add directory for the Mergify YML configuration files that provides rules and actions used to process a pull request. * Auto commit a PR from EDK II Maintainer with 'push' label set and all CI checks pass * Auto close a PR from any developers without 'push' label set and all CI checks pass. * Auto close a PR from a non EDK II Maintainer that has the 'push' label set. * Post a comment to a PR that has a merge conflict. Submitter can resolved conflicts and reopen the PR. * Post a comment to a PR that fails PatchCheck.py Submitter can resolve PatchCheck.py issues and reopen the PR. Cc: Liming Gao Cc: Sean Brogan Cc: Bret Barkelew Signed-off-by: Michael D Kinney Reviewed-by: Liming Gao --- .mergify/config.yml | 97 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 .mergify/config.yml diff --git a/.mergify/config.yml b/.mergify/config.yml new file mode 100644 index 0000000000..26583de0f6 --- /dev/null +++ b/.mergify/config.yml @@ -0,0 +1,97 @@ +## @file +# Mergify YML file that automatically merges a GitHub pull request against +# edk2-ci if all of the GitHub branch protections have passed. It also +# contains rules to: +# * auto close branches that are not from an EDK II Maintainer +# * post a comment on pull requests that have merge conflicts. +# * post a comment on pull requests that have PatchCheck.py errors. +# +# Configuration Notes: +# * Update the 'base=edk2-ci' statements with the name of the branch to merge +# pull requests. +# +# * Update the 'status-failure' statement with the name of the name of the Azure +# Pipelines Build that performs the EDK II Maintainer check. +# +# * This file must be checked into the 'default' branch of a repo. Copies +# of this file on other branches of a repo are ignored by Mergify. +# +# Copyright (c) 2019, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# https://github.com/apps/mergify +# https://doc.mergify.io/ +# +## + +pull_request_rules: + + - name: Automatically merge a PR when all required checks pass and 'push' label is present + conditions: + - base=master + - label=push + - author=@tianocore/edk-ii-maintainers + - status-success=tianocore.PatchCheck + - status-success=Ubuntu GCC5 PR + - status-success=Windows VS2019 PR + actions: + merge: + strict: true + method: rebase + + - name: Automatically close a PR when all required checks pass and 'push' label is not present + conditions: + - base=master + - -label=push + - -closed + - status-success=tianocore.PatchCheck + - status-success=Ubuntu GCC5 PR + - status-success=Windows VS2019 PR + - status-success=Ubuntu GCC5 PR (FINISHED) + - status-success=Windows VS2019 PR (FINISHED) + actions: + close: + message: All checks passed. Auto close personal build. + + - name: Post a comment on a PR that can not be merged due to a merge conflict + conditions: + - base=master + - conflict + actions: + comment: + message: PR can not be merged due to conflict. Please rebase and resubmit + + - name: Automatically close a PR that fails the EDK II Maintainers membership check and 'push' label is present + conditions: + - base=master + - label=push + - -author=@tianocore/edk-ii-maintainers + actions: + close: + message: PR submitter is not a member of the Tianocore EDK II Maintainers team + + - name: Post a comment on a PR if PatchCheck fails + conditions: + - base=master + - status-failure=tianocore.PatchCheck + actions: + comment: + message: PR can not be merged due to a PatchCheck failure. Please resolve and resubmit + + - name: Post a comment on a PR if Ubuntu GCC5 fails + conditions: + - base=master + - status-failure=Ubuntu GCC5 PR + - status-success=Ubuntu GCC5 PR (FAILED) + actions: + comment: + message: PR can not be merged due to an Ubuntu GCC5 failure. Please resolve and resubmit + + - name: Post a comment on a PR if Windows VS2019 fails + conditions: + - base=master + - status-failure=Windows VS2019 PR + - status-success=Windows VS2019 PR (FAILED) + actions: + comment: + message: PR can not be merged due to a Windows VS2019 failure. Please resolve and resubmit