【问题标题】:How to set a TeamCity build trigger to use an environment parameter如何设置 TeamCity 构建触发器以使用环境参数
【发布时间】:2021-01-28 08:12:38
【问题描述】:
我有一个 TeamCity 环境参数 (env.Environment),可以设置为您可以针对其运行构建的特定环境,即 UAT、DEV
在 TeamCity Build 触发器设置期间,没有选项可以选择您希望触发的构建运行所针对的参数。当我手动运行构建时,我可以选择选择要运行的参数,但在设置触发器时没有,有什么想法可以在哪里/如何设置?
【问题讨论】:
标签:
build
parameters
triggers
teamcity
【解决方案1】:
有多种解决方法可以实现它,但您不能直接在 TeamCity 触发器中实现它。
-
您创建的环境只是将规范中的显示值更改为“提示”。但我相信它会暂停构建。因此,每当在预定时间触发构建时,您需要在提示中选择值。
-
我能想到的最有效的方法是在 TC rest API 的帮助下触发构建。在请求负载中,您也可以发送所需的参数值。因此,无论条件如何,只需在以任何编程语言编写的自定义脚本中处理这些事情。
【解决方案2】:
另一种(不是很漂亮)的方式 - 当由触发器启动构建时,teamcity 参数 teamcity.build.triggeredBy.username 等于 "Schedule Trigger"
所以你可以在命令行构建的第一步检查它的值,然后重新定义所需的参数
if [ %teamcity.build.triggeredBy.username% == "Schedule Trigger" ]; then
echo "##teamcity[setParameter name='env.PARAM' value='VALUE']"
fi