在 Jenkins 中,如果我将分支说明符提到为
- 1 个来源/pr/${pullRequestId}/from
- 2 origin/pr/${pullRequestId}/merge
这是否意味着在第一种情况下,构建将根据拉取请求中的任何代码创建。在第二种情况下,PR 中的更改将作为补丁应用到本地 Jenkins 工作区中的目标分支,并且构建将在同一分支上触发。
最佳答案
您能否确认您正在使用 Atlassian Stash 来管理您的 Git 存储库?
当您创建 PR 时,Stash 会尝试“惰性”合并(在/merge refs ID 中)。如果目标分支正在移动,Stash 将尝试新的合并。
关于这个惰性合并的一些解释 here .
如果您使用 Stash Hook 触发 Jenkins 构建,Stash 会将所有 PR 信息发送到 Jenkins(pullRequestId、来自 SHA1、合并 SHA1,...)。
因此,在 Jenkins 作业中,您可以尝试合并(origin/pr/${pullRequestId}/from 到 origin/master,如果 master 是您的目标分支),并且可以构建合并结果。
这就是我们在我的公司中使用这些设置和 Stash pullrequest builder plugin 所做的事情:
运行良好:)
每次开发人员更新 PR 时,都会触发新的 PR 构建,并且 Jenkins 会尝试进行新的合并。
PR 验证后,如果开发人员单击“合并”按钮,它将尝试合并目标分支上的代码。
您可以在此 properties file 中设置一些合并选项.
关于jenkins - PR 合并意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34786949/