在teamcity中使用Git pull请求分支名称

时间:2014-05-15 10:32:49

标签: git teamcity pull-request


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

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

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

2 个答案:

答案 0 :(得分:6)

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

还有另一个参数 teamcity.build.vcs.branch。< VCS root ID> ,其中包含完整的Git分支名称。似乎这就是你所需要的。

您可以在文档中详细了解:http://confluence.jetbrains.com/display/TCD8/Predefined+Build+Parameters#PredefinedBuildParameters-BranchRelatedParameters

答案 1 :(得分:0)

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

注意事项:一些文章建议您使用额外的分支规范。例如+:refs/pull/*/head+:refs/pull/*/merge。这样做的效果是:如果“ 42”恰好是请求请求的ID,则完整的引用名称将为refs/pull/42/head,因此TeamCity将匹配并仅显示42作为(逻辑)分支名称。合并结果的合并分支构建。

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

示例:

  

默认分支:

refs/heads/develop
     

分支机构规范

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

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