我想根据构建管道的另一个TC构建配置部分的结果动态设置'teamcity.build.branch'的值。
这甚至可能吗?看起来值是在构建管道的开始处评估和使用的。
用例:
我已使用消息服务覆盖参数,但不考虑更改。 看起来在构建过程的早期阶段读取了值。
答案 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