如何使用合并分支从TFS拉取请求中排队Jenkins作业

问题描述 投票:2回答:1

我们在TFS(2017.3)中有Git存储库,我们的构建在Jenkins上运行。

我们想在Pull Request中实现构建验证,因此我们创建了一个对Jenkins作业进行排队的构建定义,并在“作业参数”中输入BRANCH=$(System.PullRequest.SourceBranch)

enter image description here

问题是在TFS获取源步骤中,TFS创建一个临时合并的分支来检查PR,但是System.PullRequest.SourceBranch返回PR源分支(例如功能分支)而不是合并分支,因此Jenkins作业在源分支上运行不检查公关。

我们可以向Jenkins发送合并的分支,还是我们必须在Jenkins工作中进行合并?

更新:

我看到变量Build.SourceBranch返回合并的分支但看起来像詹金斯的工作不知道这个分支。我现在检查代理并且Git在Detached HEAD中,所以我假设没有从代理外部获取的选项(即使代理创建了一个新分支 - “merged branch”它只是本地的)。任何的想法?

git jenkins tfs azure-devops tfsbuild
1个回答
1
投票

我假设您使用Jenkins TFS插件来触发Jenkins作业。

在这种情况下根据插件official documentation(部分'Git')你需要在Git Checkout步骤中将+refs/heads/*:refs/remotes/origin/* +refs/pull/*:refs/remotes/origin-pull/*添加到Refspec设置。

TFS在名为pull/<PR number>/head的临时分支中存储拉请求合并提交。通过添加Refspec,您将允许Jenkins获取这些合并提交结果。适合我。

© www.soinside.com 2019 - 2024. All rights reserved.