我想更新此设置,以便在Jenkins从pull请求构建分支之前,它将master合并到pull请求分支并构建结果.不应该推回此合并,因为它仍处于等待审核状态,但这将确保测试针对实际的拉取后请求结果运行.
我已经找到了信息,并在构建操作之前尝试了Merge,但这似乎将pull请求分支合并到master中,然后如果成功,请检查pull request branch back out out build.这对于捕获未来的合并问题非常有用,但在构建之前仍然无法捕获pull请求分支.
在Git插件(https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin)的文档中,它提到了一个看似完全符合我想要的功能:“接下来,选择一个特定的分支名称作为’高级’部分中的集成目标 – (例如’master’,或’稳定’),并选择’在构建前合并’“,但在Jenkins中我无法使用此选项.我有最新的插件,所以我不确定他们是否删除了这个并没有更新他们的文档或什么.
有谁知道如何实现“将另一个分支合并到我当前的分支并构建结果”操作?
谢谢!
您应该使用SHA检查PR Branch和master是否同步.如果它们不同步,则在运行构建阶段之前进行git rebase.stage ("Rebase Master") { pr_branch_name = sh(script: "curl https://github.com/api/v3/repos/${git_org}/${git_repo}/pulls/${CHANGE_ID} -H \"Content-Type: application/json\" -H \"authorization: token ${authentication_token}\" | jq -r .head.ref", returnStdout: true).trim() rebaseability = sh(script: "curl https://github.com/api/v3/repos/${git_org}/${git_repo}/pulls/${CHANGE_ID} -H \"Content-Type: application/json\" -H \"authorization: token ${authentication_token}\" | jq -r 'select(.base.sha==.head.sha) | \"up-to-date\"'", returnStdout: true).trim() if (rebaseability != "up-to-date" ) { git checkout ${pr_branch_name} git rebase master } }
精彩评论