动态更改'teamcity.build.branch'

时间:2016-09-23 09:52:15

标签: teamcity teamcity-9.0

我想根据构建管道的另一个TC构建配置部分的结果动态设置'teamcity.build.branch'的值。

这甚至可能吗?看起来值是在构建管道的开始处评估和使用的。

用例:

  • 我正在执行将生成唯一编号的TC构建配置
  • 在同一管道的连接TC构建配置部分中我希望在'teamcity.build.branch'中使用该数字 - 仅用于可视化目的

我已使用消息服务覆盖参数,但不考虑更改。 看起来在构建过程的早期阶段读取了值。

2 个答案:

答案 0 :(得分:2)

您可以使用发出"set parameter" service message的简单脚本覆盖参数的值。

  

通过在构建脚本中使用专用服务消息,您可以从构建步骤动态更新构建的构建参数(...)

使用这种方法,您需要执行以下步骤:

在第一个构建配置中,定义自定义构建参数并将其值设置为您正在生成的唯一编号。直接从生成唯一编号的脚本执行此操作,方法是将此类内容写入STDOUT:

##teamcity[setParameter name='magicNumber' value='1234']

在依赖构建配置中,您现在可以访问该参数。使用第二个构建脚本,您可以使用相同的机制覆盖teamcity.build.branch

##teamcity[setParameter name='teamcity.build.branch' value='the new value']

注意1:我建议不要覆盖内置参数,因为这可能会产生奇怪的副作用。而是在第二个构建配置中定义自定义参数,并将其用于可视化目的。

注意2:如果您决定忽略注释1,可能需要通过在第34节“覆盖依赖关系属性"”中设置依赖属性来覆盖构建参数,如in the docs所述。 / p>

##teamcity[setParameter name='reverse.dep.*.teamcity.build.branch' value='the new value']

答案 1 :(得分:1)

检查以下包含内部版本号和git分支名称的引用

https://octopus.com/blog/teamcity-version-numbers-based-on-branches