在TeamCity中触发A作业后自动触发B作业

时间:2020-04-28 08:35:37

标签: teamcity

有没有一种方法可以在触发作业A之后的1小时内自动触发作业B,这里的问题是作业A不会在作业本身的中间完成工作,因此它必须在触发作业B之后才完全触发一个小时或另一个选择是完全在脚本1执行一个小时后跳过构建脚本2,有什么办法吗?

预先感谢

2 个答案:

答案 0 :(得分:0)

我认为您的建议不是设置部署的好方法,但是我可以想到一些变通办法,如果您被迫朝这个方向努力,可能会有所帮助。

  • 在配置A中,添加构建步骤,该步骤将一个计划的构建触发器添加到配置B中一个小时(使用API​​)。在配置B中,在配置末尾添加一个构建步骤以删除此计划的触发器。感觉应该避免,但是more details here确实很可怕。
  • TeamCity外部使用任何发布/订阅机制,因此部署到VM的虚拟机可以在完成后创建事件。订阅此事件并使用TeamCity API触发后续构建。例如,如果您使用的是AWS,则您可以拥有一个带有lambda函数的SNS主题作为订阅者。当环境处于合适的状态时,此lambda函数将调用API以使配置B排队。

如果您共享正在使用的部署软件,则可能有更好的解决方案。

答案 1 :(得分:0)

我无法提供良好的解决方案,但是我可以提出两种可能的解决方法:

1。建立暂停

您可以在项目A的最后一个构建步骤或项目B的第一个构建步骤中添加“命令行” shell暂停。该暂停必须设置为一个小时:

sleep 1h

您需要为此重新配置默认的构建超时,否则作业将失败。

2。严格计划

如果您在可以或应该触发A的时间上有一定的灵活性,则可以使用“计划触发器”来计划A和B,例如如果将项目A安排到下午1点,将项目B安排到下午2点,则请确保这两个项目之间至少有一个小时。可以根据需要定期安排。

相关问题