我让TeamCity在多个Mercurial分支机构之间构建配置。作为构建过程的一部分,我想根据从中构建的分支命名一些输出。
我尝试使用$(TEAMCITY_BUILD_BRANCH)
尝试从TeamCity获取teamcity.build.branch
属性,但我只获得一个空字符串。我成功使用$(BUILD_NUMBER)
将build.number
属性放入脚本中,因此我对所需内容感到困惑。
答案 0 :(得分:5)
只需创建一个构建参数:
system.branch_name = %teamcity.build.vcs.branch.Your_Project%
项目名称中的任何非字母数字字符都应替换为“_”。
在你的msbuild中使用$(branch_name)
来引用参数。
像魅力一样工作: - )
答案 1 :(得分:2)
$(vcsroot_url),如果您只有一个vcs root连接到构建配置。
如果这不是您想要的 - 请尝试使用此处所述的所有已知属性: http://confluence.jetbrains.net/display/TCD7/Predefined+Build+Parameters
仅供参考的服务器属性:
您可以通过添加来获取全套仅供参考的服务器属性 system.teamcity.debug.dump.parameters属性到构建 配置和检查“可用的仅供参考的服务器 属性“构建日志中的部分。
UPD:您也可以查看"what's new" link。
VCS分支参数对于Git和Mercurial,TeamCity提供 附加的构建参数,其中包含VCS分支的名称 建设开始的时刻。如果一个版本从该版本进行了修订 refs / heads / bugfix分支,TeamCity将添加一个配置参数 使用以下名称:teamcity.build.vcs.branch。<简化的VCS 根名称> = refs / heads / bugfix
VCS根目录的名称在哪里 非字母数字字符替换为_。
根据这个 - 您应该能够像以下msbuild变量一样访问分支 $(teamcity_build_vcs_branch _)。
希望这次我能正确理解你的问题。
PS:很抱歉最初的误导 - 我不知道TeamCity中DVCS和CVCS之间的细微差别。无论如何 - 我的初步答案也可以帮助你 - 你可以获得所有变量,然后找到你想要的正确数据的确切var名称