【问题标题】:Git pull request branch name in teamcity团队城市中的 Git 拉取请求分支名称
【发布时间】:2018-07-05 17:47:32
【问题描述】:


我为 QA 测试环境配置了我的 teamcity 服务器的 git pull requests。如果我使用 TeamCity feature branching integration,我可以使用此属性获取分支名称:%teamcity.build.branch%

use pull request 时,%teamcity.build.branch% 属性返回拉取请求编号(1、2、3 等)。

如何获取拉取请求分支名称?

【问题讨论】:

    标签: git teamcity pull-request


    【解决方案1】:

    参数 teamcity.build.branch 是一个逻辑分支,即它是您的分支规范中与 * 匹配的分支的一部分。

    还有另一个参数 teamcity.build.vcs.branch. 包含完整的 Git 分支名称。看来这就是你需要的。

    您可以在文档中阅读更多信息:http://confluence.jetbrains.com/display/TCD8/Predefined+Build+Parameters#PredefinedBuildParameters-BranchRelatedParameters

    【讨论】:

    • teamcity.build.vcs.branch. 给了我 refs/pull/1/head,但实际的分支名称是 feature-tc
    【解决方案2】:

    我不确定 TeamCity 中是否提供类似于 SYSTEM_PULLREQUEST_SOURCEBRANCH 的内容,但也许您可以使用“逻辑分支名称”来代替?在 TC 中,这直接对应于您可能已在 VCS 根 -> 分支规范 中添加的* 占位符匹配的子字符串。

    警告:有些文章建议您有一个额外的分支规范。,例如 +:refs/pull/*/head+:refs/pull/*/merge。其效果是:如果“42”恰好是 Pull Request id,则完整的 ref 名称将为 refs/pull/42/head,因此 TeamCity 将匹配并仅显示 42 作为合并分支的(逻辑)分支名称and 构建合并结果。

    解决此问题的一种方法是使星号与 (PR) ref 名称的 足够长 子字符串匹配,以便对您有意义。另一种是使用括号来包含更多的参考。您的要求将取决于您的分支命名约定。

    例子:

    默认分支:

    refs/heads/develop
    

    分支规范

    +:refs/(pull/*/merge)
    +:refs/heads/*
    

    ...将显示pull/42/mergemasterhotfix/1.2.3 等分支。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-19
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      相关资源
      最近更新 更多