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