Azure Devops - 是否可以在管道运行之间对阶段进行排队

时间:2021-01-27 14:06:02

标签: azure-devops azure-pipelines

我有一个 Azure Devops 管道 (yml),其中有一个阶段,可将应用程序部署到环境中,然后针对它运行一系列测试。创建 PR 时会触发此管道。有时,我们会同时多次运行相同的管道,从而导致同时发生对同一环境的两次部署。

是否可以将管道配置为一次只能执行一个部署阶段?


我正在尝试做的简单示例:

具有阶段的管道 (yml):1) 构建 -> 2) 部署/测试 -> 3) 发布

运行 1:构建:完成 -> 部署/测试正在进行 -> 发布等待阶段 2

运行 2:构建:完成 -> 部署/测试等待运行 1 阶段 2

1 个答案:

答案 0 :(得分:0)

如果您使用 YAML,那么请在 deployment job 中发布您使用启用了 exclusive lock 的环境。但是,这有一些缺点:

enter image description here

在开发者社区中,您可以找到更好地处理此问题的功能请求。并且有一种解决方法involved calling REST API。但是,正如有人已经提到的:

<块引用>

涉及轮询的解决方法以竞争条件结束,其中两个排队的构建都可以开始。

因此没有理想的解决方案,但如果您可以,请支持上述请求。