Jenkins Multibranch 管道拉取请求
Jenkins Multibranch pipeline pull request
我正在为 pullrequest 使用多分支管道。创建 pr 时,它会触发 pullrequest 作业。无论如何,是否仅针对特定的拉取请求而不是全部触发作业。
示例:我有三个分支 develop、fb 和 master。我只想在创建从 develop 到 master 的 pull request 时触发作业,而不是在创建从 fb 到 develop 或 fb 到 master 的 pullrequest 时触发作业。
在这种情况下,您可能想要 运行 您的管道,分析基础分支,如果基础分支不符合您的喜好,则停止。
环境变量 CHANGE_ID
由 github 分支源插件设置,以防分支是拉取请求。
如果已设置,您可以探索名为 pullRequest
的全局对象,例如像这样:
if (env.CHANGE_ID) {
echo("Looking for PR: PR detected, change id is ${env.CHANGE_ID}")
def prBase = pullRequest.base
if (prBase != 'master') {
currentBuild.result = 'ABORTED'
error("This PR is over ${prBase} branch, not 'master'. Aborting.")
}
}
我正在为 pullrequest 使用多分支管道。创建 pr 时,它会触发 pullrequest 作业。无论如何,是否仅针对特定的拉取请求而不是全部触发作业。 示例:我有三个分支 develop、fb 和 master。我只想在创建从 develop 到 master 的 pull request 时触发作业,而不是在创建从 fb 到 develop 或 fb 到 master 的 pullrequest 时触发作业。
在这种情况下,您可能想要 运行 您的管道,分析基础分支,如果基础分支不符合您的喜好,则停止。
环境变量 CHANGE_ID
由 github 分支源插件设置,以防分支是拉取请求。
如果已设置,您可以探索名为 pullRequest
的全局对象,例如像这样:
if (env.CHANGE_ID) {
echo("Looking for PR: PR detected, change id is ${env.CHANGE_ID}")
def prBase = pullRequest.base
if (prBase != 'master') {
currentBuild.result = 'ABORTED'
error("This PR is over ${prBase} branch, not 'master'. Aborting.")
}
}