4

我已经让 TeamCity 跨多个 Mercurial 分支构建配置。作为构建过程的一部分,我想根据正在构建的分支命名一些输出。

我尝试使用$(TEAMCITY_BUILD_BRANCH), 尝试teamcity.build.branch从 TeamCity 获取属性,但我只得到一个空字符串。我成功地$(BUILD_NUMBER)build.number属性放入脚本中,所以我对需要什么感到有点困惑。

4

2 回答 2

5

只需创建一个构建参数:

system.branch_name = %teamcity.build.vcs.branch.Your_Project%

项目名称中的任何非字母数字字符都应替换为“_”。在您的 msbuild 中使用$(branch_name)来引用参数。

像魅力一样工作:-)

于 2012-10-31T10:03:58.217 回答
2

$(vcsroot_url) 如果您只有一个 vcs root 附加到构建配置。

如果这不是您想要的 - 尝试按照此处所述获取所有已知属性:http: //confluence.jetbrains.net/display/TCD7/Predefined+Build+Parameters

仅供参考的服务器属性:

您可以通过将 system.teamcity.debug.dump.parameters 属性添加到构建配置并检查构建日志中的“可用的仅供参考的服务器属性”部分来获取完整的仅供参考的服务器属性。

UPD:您也可以查看此“最新消息”链接

VCS 分支参数 对于 Git 和 Mercurial,TeamCity 提供了其他构建参数,其中包含在构建开始时已知的 VCS 分支名称。如果构建从 refs/heads/bugfix 分支进行了修订,TeamCity 将添加具有以下名称的配置参数:teamcity.build.vcs.branch.<simplified VCS root name>=refs/heads/bugfix

VCS 根的名称在哪里,其中所有非字母数字字符都替换为 _。

据此 - 您应该能够按照 msbuild 变量 $(teamcity_build_vcs_branch_) 访问分支。

希望这次我能正确理解您的问题。

PS:抱歉最初的误导 - 我不知道 TeamCity 中的 DVCS 和 CVCS 之间存在如此细微的差异。无论如何-我的初始答案也可以帮助您-您可以获取所有变量,然后使用所需的适当数据找到确切的变量名称

于 2012-10-11T13:01:59.857 回答