我在 Azure Devops 中有微服务 monorepo,每个嵌套服务都有管道。
root
/app1/app1-pipeline.yml
/app2/app2-pipeline.yml
/app3/app3-pipeline.yml
每个管道都有 2 个阶段:
例如,当同一个提交触发 3 个管道时,我可以看到阶段的执行顺序如下:
我正在寻找一种方法来“强制”执行顺序如下:
换句话说,我希望运行程序一个接一个地顺序执行管道,而不是混合它们。
我找不到解决方案。
这可能吗,或者可能不推荐(为什么)?
提前谢谢您!
如果同时触发多个管道,则无法按照您的要求排序阶段的运行。
对于您的情况,作为解决方法,您可以考虑如下方法:
在每个管道中,您可以使用“
dependsOn
”键来排序阶段的运行。
# Stage B will run after stage A complete.
# By default, stage A should complete successfully.
stages:
- stage: A
. . .
- stage: B
dependsOn: A
. . .
要订购管道的运行,您可以使用管道资源触发器(管道完成触发器)。
在App2的管道中,设置如下配置。
trigger: none # Disable CI trigger.
resources:
pipelines:
- pipeline: App1
source: App1 # Actual name of the pipeline for App1.
trigger: true
类似,在App3的pipeline中,设置如下配置。
trigger: none # Disable CI trigger.
resources:
pipelines:
- pipeline: App2
source: App2 # Actual name of the pipeline for App2.
trigger: true
通过上述配置,各个阶段将按照您期望的顺序运行。