我有一个TeamCity构建配置,它在夜间在大量机器上运行测试。重要的是这些测试不会在白天进行。
Build使用Schedule Trigger启动,每天凌晨1点开始。 如果运行时间超过6小时,我已将Build设置为超时,因此它会在早上7点左右停止。
我今天早上查看了最新的Build,发现相关的Build Agent不可用;因此Build仍然排队。
如果构建代理可用,比如说,早上6点,那么我认为排队的Build会启动并继续运行直到上午11点。我不希望Build在早上7点之后运行。
如果排队等了太长时间,我有什么方法可以阻止Build启动?
或者,是否可以在特定时间停止Build死亡?在这种情况下,如果排队超过早上7点,我还需要阻止Build首先启动。
答案 0 :(得分:1)
我有一个具有类似要求的构建链。我的解决方案是使用由计划计时器触发的单独构建配置。
此构建配置的唯一责任是查看是否满足所有要求(例如,您的情况下的时钟时间),然后才能成功完成 - 然后成功完成此操作将触发“真正的”构建链 - 您可以使用Finish Build Trigger,条件为“仅在成功构建后触发”。
另一方面,如果不满足要求,则构建失败,构建链将无法运行。
这个“检查和触发器”构建配置的实现可能只是几行PowerShell:
$time = Get-Date
if($time.Hour -gt 6)
{
exit 1 #failing this build
}