我已经让 TeamCity 跨多个 Mercurial 分支构建配置。作为构建过程的一部分,我想根据正在构建的分支命名一些输出。
我尝试使用$(TEAMCITY_BUILD_BRANCH)
, 尝试teamcity.build.branch
从 TeamCity 获取属性,但我只得到一个空字符串。我成功地$(BUILD_NUMBER)
将build.number
属性放入脚本中,所以我对需要什么感到有点困惑。
我已经让 TeamCity 跨多个 Mercurial 分支构建配置。作为构建过程的一部分,我想根据正在构建的分支命名一些输出。
我尝试使用$(TEAMCITY_BUILD_BRANCH)
, 尝试teamcity.build.branch
从 TeamCity 获取属性,但我只得到一个空字符串。我成功地$(BUILD_NUMBER)
将build.number
属性放入脚本中,所以我对需要什么感到有点困惑。
只需创建一个构建参数:
system.branch_name = %teamcity.build.vcs.branch.Your_Project%
项目名称中的任何非字母数字字符都应替换为“_”。在您的 msbuild 中使用$(branch_name)
来引用参数。
像魅力一样工作:-)
$(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 之间存在如此细微的差异。无论如何-我的初始答案也可以帮助您-您可以获取所有变量,然后使用所需的适当数据找到确切的变量名称