动态变化 'teamcity.build.branch'
Dynamically changing 'teamcity.build.branch'
我想根据构建管道的另一个 TC 构建配置部分的结果动态设置 'teamcity.build.branch' 的值。
这可能吗?看起来该值是在构建管道的开始时评估和使用的。
用例:
- 我正在执行将生成唯一编号的 TC 构建配置
- 在同一管道的已连接 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
我想根据构建管道的另一个 TC 构建配置部分的结果动态设置 'teamcity.build.branch' 的值。
这可能吗?看起来该值是在构建管道的开始时评估和使用的。
用例:
- 我正在执行将生成唯一编号的 TC 构建配置
- 在同一管道的已连接 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