在 TeamCity 中触发 A 作业后自动触发 B 作业
Auto Trigger B job after triggering A job in TeamCity
有没有一种方法可以在触发作业 A 后恰好 1 小时自动触发作业 B,这里的问题是作业 A 在作业本身的中间还没有完成它的工作,它也必须触发作业 B正好在一小时后,或者另一个选项是在脚本 1 执行一小时后跳到构建脚本 2,有什么办法可以做到这一点吗?
提前致谢
我不认为你提议的是设置部署的好方法,但我可以想到一些解决方法,如果你被迫朝这个方向发展可能会有所帮助。
- 在配置 A 中,添加构建步骤,将计划的构建触发器添加到配置 B 一个小时(使用 API)。在配置 B 中,将构建步骤添加到配置的末尾以删除此计划触发器。这感觉像是一个非常可怕的黑客攻击,应该避免,但是 more details here.
- 在 TeamCity 之外使用任何 pub/sub 机制,以便对 VM 的部署可以在完成时创建一个事件。订阅此事件并使用 TeamCity API 触发后续构建。例如,如果您使用的是 AWS,则可以将带有 lambda 函数的 SNS 主题作为订阅者。当环境处于合适的状态时,此 lambda 函数将调用 API 对配置 B 进行排队。
如果您分享您正在使用的部署软件,可能会有更好的解决方案。
我无法提供好的解决方案,但我可以建议两种可能的解决方法:
1.构建暂停
您可以添加一个'Command Line' shell暂停作为项目A的最后构建步骤或项目B的第一个构建步骤。该暂停必须设置为一小时:
sleep 1h
您需要为此重新配置默认构建超时,否则作业将失败。
2。严格调度
如果您对可以或应该触发 A 的时间有一些灵活性,您可以使用 'Schedule Trigger' 来安排 A 和 B,例如如果您将项目 A 安排在下午 1 点,将项目 B 安排在下午 2 点,您要确保这两者之间至少有一个小时。这可以根据需要经常安排。
有没有一种方法可以在触发作业 A 后恰好 1 小时自动触发作业 B,这里的问题是作业 A 在作业本身的中间还没有完成它的工作,它也必须触发作业 B正好在一小时后,或者另一个选项是在脚本 1 执行一小时后跳到构建脚本 2,有什么办法可以做到这一点吗?
提前致谢
我不认为你提议的是设置部署的好方法,但我可以想到一些解决方法,如果你被迫朝这个方向发展可能会有所帮助。
- 在配置 A 中,添加构建步骤,将计划的构建触发器添加到配置 B 一个小时(使用 API)。在配置 B 中,将构建步骤添加到配置的末尾以删除此计划触发器。这感觉像是一个非常可怕的黑客攻击,应该避免,但是 more details here.
- 在 TeamCity 之外使用任何 pub/sub 机制,以便对 VM 的部署可以在完成时创建一个事件。订阅此事件并使用 TeamCity API 触发后续构建。例如,如果您使用的是 AWS,则可以将带有 lambda 函数的 SNS 主题作为订阅者。当环境处于合适的状态时,此 lambda 函数将调用 API 对配置 B 进行排队。
如果您分享您正在使用的部署软件,可能会有更好的解决方案。
我无法提供好的解决方案,但我可以建议两种可能的解决方法:
1.构建暂停
您可以添加一个'Command Line' shell暂停作为项目A的最后构建步骤或项目B的第一个构建步骤。该暂停必须设置为一小时:
sleep 1h
您需要为此重新配置默认构建超时,否则作业将失败。
2。严格调度
如果您对可以或应该触发 A 的时间有一些灵活性,您可以使用 'Schedule Trigger' 来安排 A 和 B,例如如果您将项目 A 安排在下午 1 点,将项目 B 安排在下午 2 点,您要确保这两者之间至少有一个小时。这可以根据需要经常安排。