限制 azure 管道仅一个接一个地运行,而不是并行运行

Per*_*rcy 7 azure azure-devops azure-pipelines

我已经在 Azure 中设置了 PR 管道。作为该流程的一部分,我运行了许多回归测试。这些针对回归测试数据库运行 - 我们必须在测试开始时清除数据库,以便我们确定其中有哪些数据以及应该从中得出什么。

这一切都工作正常,直到管道并行运行多次 - 然后回归数据库被多次写入,并且从它返回的数据不是预期的。

我怎样才能停止并行运行的管道 - 我已经尝试过谷歌,但找不到我正在寻找的东西。

如果管道正在运行,则下一个构建应该等待(不是所有管道 - 我想将其设置在单个管道上),这可能吗?

ton*_*edz 7

根据您的具体用例,您也许可以使用正确的触发器配置来控制它。

就我而言,每次拉取请求合并到 Azure 中的主分支时,我都会安排一个管道启动。该管道将​​代码部署到服务器并启动了一系列测试。有时,当两次合并仅相隔几分钟发生时,构建会由于使用需要同步的共享资源而失败。

我通过批处理 CI 运行修复了这个问题

我改变了我的基本配置

trigger:
  - main
Run Code Online (Sandbox Code Playgroud)

使用更详细的语法允许我打开批处理

trigger:
  batch: true
  branches:
    include:
    - main
Run Code Online (Sandbox Code Playgroud)

完成此操作后,只会触发新的构建main前一个构建完成后才会触发新的构建,无论同时向分支添加了多少提交。

这样,我就可以避免启动太多构建,并且仍然可以在需要时使用多个代理。


Sam*_*ath -1

您可以使用 Maik van der Gaag 的“触发 Azure DevOps Pipeline ”扩展。

它需要向您添加 DevOps 并配置主管道的末端并指向您的测试管道。

可以在Maik的博客上找到更多详细信息。