在Jenkins中,如果我将Branch Specifier视为
,这两者都会做什么这是否意味着在第一种情况下,构建将根据拉取请求中的代码创建。在第二种情况下,PR中的更改将作为补丁应用于本地目标分支,Jenkins工作区和构建内部将同时触发。
答案 0 :(得分:1)
您能否确认使用Atlassian Stash来管理您的Git仓库?
当你创建PR时,Stash会尝试一个"懒惰"合并(在/ merge refs ID中)。如果目标分支正在移动,Stash将尝试新的合并。
关于这种懒惰合并的一些解释here。
如果使用Stash挂钩触发Jenkins构建,Stash会将所有PR信息发送给Jenkins(pullRequestId,来自SHA1,合并SHA1,...)。
因此,使用Jenkins作业,您可以尝试合并(origin / pr / $ {pullRequestId} / from from origin / master,如果master是您的目标分支),您可以构建合并结果。
我们在公司中使用这些设置和Stash pullrequest builder plugin:
进行的操作运作良好:))
每次开发人员更新PR时,都会触发新的PR构建,Jenkins会尝试进行新的合并。
验证PR后,如果开发人员单击“合并”按钮,它将尝试合并目标分支上的代码。
您可以在此properties file中设置一些合并选项。