jenkins - Jenkins 多分支管道拉取请求
问题描述
我正在使用多分支管道进行拉取请求。创建 pr 时,它会触发 pullrequest 作业。无论如何,是否仅在特定的拉取请求而不是全部触发作业。例子:我有三个分支develop,fb和master。我只想在我创建从开发到主的拉取请求时触发作业,而不是在我创建从 fb 到开发或从 fb 到主的拉取请求时。
解决方案
在这种情况下,您可能想要运行您的管道,分析基础分支,如果基础分支不符合您的喜好,则停止。
环境变量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.")
}
}
推荐阅读
- docker - 如何通过简单地从头开始在容器中设置随机 UID 来创建非 root 用户?
- android - 当我滑动时,有没有办法阻止片段 1 转到片段 2?
- spring-mvc - How to do login for another role when User is already login as User role
- asp.net-mvc - 当有 2 个模型时如何使用 ValidationMessageFor?
- javascript - 如何使用 codeceptjs 访问 vuetify-component
- hyperledger-fabric - 错误:尚未将加密套件分配给此客户端
- javascript - 想要选择所有值但只选择一个
- ios - Why unsigned xcarchive is larger than signed?
- java - Parse string to float/double
- python - 使用权重数据框(networkx)绘制边缘