cod*_*ith 6 github jenkins jenkins-pipeline
我们使用Jenkins管道和Github Multibranch。
我在一个名为的功能分支上工作feature/my1stfeature。Jenkins作业返回了正确的分支名称:
println(env.BRANCH_NAME)返回feature/my1stfeature。
但是,一旦我在Github中创建了我的第一个请求请求
println(env.BRANCH_NAME)返回PR-01。
我当然想要功能分支的名称。
如何解决呢?
我不确定,但这可能与您的分支源有关 请参阅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
gitHubBranchDiscoverygitHubPullRequestDiscovery我猜您已经选择: 将拉取请求与当前目标分支修订版合并或者当前拉取请求修订版和拉取请求与当前目标分支修订版合并
使用与目标分支的当前修订版本合并的结果相对应的已发现修订版本发现每个拉取请求一次。
当前拉取请求修订
使用与拉取请求头修订版相对应的已发现修订版发现每个拉取请求一次,无需合并。
当前拉取请求修订以及与当前目标分支修订合并的拉取请求
每个拉取请求发现两次。第一个发现的修订版对应于每次扫描中与目标分支的当前修订版合并的结果。第二个并行发现的修订版对应于未合并的拉取请求头修订版。
如果您使用“将拉取请求与当前目标分支修订版合并”,那么最终发生的情况是 Jenkins 按照以下格式创建另一个临时(在代理上)分支PR-<PR-Number>,并将其与目标分支(主)合并,然后执行你的舞台
我找不到有关它如何命名为 的文档PR-<PR-Number>,但这就是我所看到的。
我特别说“另一个”,因为对于 Jenkins,如果你使用过gitHubBranchDiscover,那么它也会再次通过你的Jenkinsfile分支。根据我的理解,你想要的是:当前的拉取请求修订
您还可以使用其他设置组合,但只需查看您的分支源并验证它是否是您所期望的。
所以基本上你有一份公关工作和一份分支机构工作。如果你有更多的触发因素,你可能会有更多的工作。通常你使用:
stage('Release') {
when {
beforeAgent true
anyOf {
branch 'main'; branch 'release/*'
}
}
Run Code Online (Sandbox Code Playgroud)