Azure Devops - 如何同时防止多个管道 运行?

Azure Devops - How to prevent multiple pipelines run at same time?

我有两个不同的管道和 3 个启用的代理。我的问题是,如果同时有多个构建 运行 ,我的一个管道 会失败(因为 tets 运行 会发生冲突),所以我想排队如果此特定管道还有另一个 运行,则构建请求。

我尝试的第一件事是使用功能和需求来识别一个代理,因此始终只有一个代理可用于此管道,但它不适用于 Microsoft 托管的代理 这就是我所拥有的。 然后我想也许可以创建 2 个代理池,我可以在我的管道配置中指定使用其中一个,但又一次我无法为 Microsoft 托管的代理[= 创建多个池11=]

如何防止同时进行多个构建 运行?

谢谢!

您只需启用 "Batch changes while a build is in progress" 选项即可一次执行一个管道。

这里有一个类似的问题:

最后我解决了从 Build 到 Build + Release 的问题。

@Fairoz 的解决方案对我不起作用,因为仍然允许同时构建不同分支 运行 的多重构建。我需要的是锁定管道,直到没有构建 运行ning。 在 Azure Devops 上执行此操作的方法是使用能力 + 需求,但不适用于 Microsoft 托管的代理,所以我所做的是 将我所有的测试逻辑移动到部署的 Release到 CI 并离开刚刚制作工件的构建。

所以工作流程是: PR 到 Github > 触发构建 > 用我的分支生成工件 > 触发发布 > 发布代码到 CI 和 运行 测试

Azure Devops 允许控制一个阶段可以存在多少并行执行,所以我将并行任务的数量限制为 1,仅此而已