我们使用Jenkins管道和放大器Github Multibranch。
我参与了一个名为feature/my1stfeature
的功能分支。
Jenkins作业返回了正确的分支名称:
println(env.BRANCH_NAME)
返回了feature/my1stfeature
。
然而,只要我在Github中创建了第一个pull-request
println(env.BRANCH_NAME)
返回PR-01
。
我当然希望得到功能分支的名称。
如何解决这个问题?
答案 0 :(得分:0)
我不确定,但这可能与您的分支来源有关 见https://docs.cloudbees.com/docs/admin-resources/latest/multibranch-pipeline-template-syntax-guide/github
https://docs.cloudbees.com/docs/admin-resources/latest/plugins/github-branch-source
gitHubBranchDiscovery
gitHubPullRequestDiscovery
我猜您已经选择了:将拉取请求与当前目标分支修订版合并或 当前拉取请求修订版和与当前目标分支合并的拉取请求修订
<块引用>当前拉取请求修订版
使用发现的修订版发现每个拉取请求一次 对应拉取请求头部修订,不合并。
当前拉取请求修订版和与当前目标分支修订版合并的拉取请求
发现每个拉取请求两次。第一个发现的修订版 对应于与当前修订版合并的结果 每次扫描中的目标分支。第二个平行发现的修订版 对应拉取请求头部修订,不合并。
如果您使用“将拉取请求与当前目标分支修订版合并”,那么最终会发生的是 Jenkins 按照以下格式创建另一个临时(在代理上)分支{{1}并将其与目标分支(主)合并,然后通过您的阶段
我找不到关于它如何命名为 PR-<PR-Number>
的文档,但我所看到的就是这个。
我特别提到了“另一个”,因为对于 Jenkins,如果您已经使用了 PR-<PR-Number>
,那么它也会再次通过您的 gitHubBranchDiscover
到达分支。根据我的理解,您想要的是:当前的拉取请求修订
您还可以进行其他设置组合,但只需查看您的分支源并验证它是否符合您的预期。
所以基本上你有一个 PR 工作和一个 branch 工作。如果您有更多的触发器,您可能会有更多的工作。通常你使用:
Jenkinsfile