Azure管道:如果管道B正在运行,如何阻止管道A

Azure管道:如果管道B正在运行,如何阻止管道A,azure,azure-devops,continuous-integration,azure-pipelines,devops,Azure,Azure Devops,Continuous Integration,Azure Pipelines,Devops,我在azure管道中有两个管道(也称为“构建定义”),一个是执行系统测试,另一个是执行性能测试。两者都使用相同的测试环境。我必须确保在系统测试管道运行时不会触发性能管道,反之亦然 到目前为止我所做的尝试是:我可以访问Azure DevOps REST-API来检查构建是否针对特定定义运行。因此,在实际管道运行之前,我可以实现一个执行脚本的作业。然后,脚本通过每秒检查REST-API来检查其他管道的构建状态,并在1小时后超时 然而,在我看来,这似乎有点老套。是否有更好的方法在另一个生成管道运行时阻

我在azure管道中有两个管道(也称为“构建定义”),一个是执行系统测试,另一个是执行性能测试。两者都使用相同的测试环境。我必须确保在系统测试管道运行时不会触发性能管道,反之亦然

到目前为止我所做的尝试是:我可以访问Azure DevOps REST-API来检查构建是否针对特定定义运行。因此,在实际管道运行之前,我可以实现一个执行脚本的作业。然后,脚本通过每秒检查REST-API来检查其他管道的构建状态,并在1小时后超时


然而,在我看来,这似乎有点老套。是否有更好的方法在另一个生成管道运行时阻止生成管道?

如果您的项目是私有的,Microsoft托管的CI/CD并行作业限制是一个免费并行作业,每次最多可以运行60分钟,直到您每月使用1800分钟(30小时)为止

自托管CI/CD并行作业限制是一个自托管并行作业。此外,对于作为组织成员的每个活动Visual Studio企业订阅服务器,您将获得一个额外的自托管并行作业


现在,还没有这样的设置来控制不同的代理池并行作业限制。但是社区中也存在类似的问题,答案已经标记出来了。我建议你检查一下答案是否对你有帮助。是链接

限制它们在单个代理上运行,因此一次只能运行一个代理。这是不可能的,因为我必须运行perf。在单个专用代理上进行测试,其中系统测试在多个代理上并行运行。@TobiasvonFalkenhayn谁触发测试以及如何触发?@ShaykiAbramczyk测试在合并到主代理时以及在夜间计划中触发。@TobiasvonFalkenhayn您可以使用发布管道运行测试吗?(如果是,您可以使用gates进行检查)标记的答案与我最初描述的完全相同,创建了一个用于轮询运行构建的自定义脚本。看起来这是一条路要走。这个链接能帮助你实现你的需求吗?如果是,你可以接受答案。它将方便地帮助其他具有相同期望的社区用户。如果没有,您可以在此处自由发表评论,我将及时跟进。:)这是我的荣幸。谢谢