我配置了git pull请求我的teamcity服务器用于QA测试环境。如果我使用TeamCity feature branching integration,我可以使用此属性获取分支名称:%teamcity.build.branch%
。
当use pull request时,%teamcity.build.branch%
属性返回拉取请求编号(1,2,3等)。
如何获取拉取请求分支名称?
答案 0 :(得分:6)
参数 teamcity.build.branch 是一个逻辑分支,即它是您的分支规范中与*匹配的分支的一部分。
还有另一个参数 teamcity.build.vcs.branch。< VCS root ID> ,其中包含完整的Git分支名称。似乎这就是你所需要的。
答案 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/merge
,master
,hotfix/1.2.3
等分支。