gpt4 book ai didi

git - 如何使用 merge 分支从 TFS pull 请求中排队 Jenkins 作业

转载 作者:行者123 更新时间:2023-12-04 01:47:56 24 4
gpt4 key购买 nike

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

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

enter image description here

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

我们能否将 merge 后的分支发送给 Jenkins,或者我们必须在 Jenkins 作业中进行 merge ?

更新:

我看到变量 Build.SourceBranch 返回 merge 的分支,但 Jenkins 作业似乎不知道该分支。我现在检查了代理,Git 处于分离的 HEAD 中,所以我假设没有从代理外部获取的选项(即使代理创建了一个新分支 - “merge 分支”它只是本地的)。有什么想法吗?

最佳答案

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

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

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

关于git - 如何使用 merge 分支从 TFS pull 请求中排队 Jenkins 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54518152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com