动态变化 'teamcity.build.branch'

Dynamically changing 'teamcity.build.branch'

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

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

用例:

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

您可以使用发出 "set parameter" service message.

的简单脚本来覆盖参数的值

By using a dedicated service message in your build script, you can dynamically update build parameters of the build right from a build step (...)

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

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

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

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

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

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

注 2:如果您决定忽略注 1,可能需要通过设置依赖项 属性 来覆盖构建参数,如 "Overriding Dependencies Properties" 部分所述 in the docs

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

检查以下包含内部版本号和 git 分支名称的参考资料

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