我们的流水线通常有以下几个阶段:
此外 - 在测试和生产环境中 - 定义了批准 - 所以如果 PR 被合并,它只会被部署到开发,然后需要手动批准才能部署到测试等等。
我们有很多组件(API A、API B、一些后台工作者等等),因为我们想要独立管理和部署这些组件 - 所有这些组件都定义了自己的管道(它们看起来都非常相似 -如上所述)。
有时会发生一个 PR 影响多个组件,然后并行触发 2 或 3 个或更多管道。
我们还有一组 E2E 测试 - 用于验证所有组件是否可以正常协同工作。
当单个 PR 被合并并影响多个组件时 - 我们真的不想多次触发这些 E2E 测试。我们只想在所有受影响组件的所有管道部署到特定环境时触发它。 正因为如此 - 我们为这些 E2E 测试分离了流水线。
我们想要实现的流程是:
你知道我们如何才能达到最后一个条件吗?
答案 0 :(得分:1)
您需要将自定义 Powershell/Shell 任务写入您的管道,该任务主要是轮询更新以检查您的外部 E2E 测试管道是否已完成并在 E2E 测试完成时完成该过程。
这是另一个答案的链接,其中包含如何完成此操作的示例:
但是,使用这种方法,如果您的 E2E 测试需要几个小时才能运行,您可能会遇到作业超时问题。默认超时时间为:
这是有关超时的文档: