当前位置: 首页 > 知识库问答 >
问题:

Azure Devops禁用同一管道上的并发运行

松正阳
2023-03-14

我在azure devops中有2个构建代理和8个管道。如果为管道a启动了一次运行,并且为同一管道触发了另一次运行,Azure Devops将在另一个代理上启动第二次运行,而无需等待第一次运行完成。

如何让Azure Devops等到第一次运行完成后再开始第二次运行?

编辑:使用yaml管道而不是旧的构建/发布管道。

共有2个答案

哈宪
2023-03-14

我认为您可以在管道的代理作业上使用向池中添加需求,这样它就会因为相同的指定条件而与同一个代理一起运行。

首先,在代理中添加一个功能。

然后,在YAML中,向池中添加需求。

pool:
  name: {agent pool name}
  demands: Limit -equals DisAbleParallel 

它的格式是要求:{CapabilityName}-等于{CapabilityValue}

当您指定代理需求时,管道将只与此代理一起运行。当A正在运行时,第二个不会同时运行,因为前一个正在运行,代理正在使用。这样,第二个将运行到前面的结束。

仲孙思源
2023-03-14

看起来您可以通过使用yaml文件中的触发器选项来执行此操作:

trigger:  
    batch: true

请注意,默认情况下该值为false(因此当保留为空时),但它可能仅在定义触发器时才为false?

此处的文档:https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-德沃斯

 类似资料:
  • 我不想允许相同类型(相同存储库)的两个作业在同一节点上并行运行。 如何在Jenkinsfile中使用groovy做到这一点?

  • 我不确定发生了什么,过去我们在Azure Devops中的管道构建的一切都很好。 但是就在最近,我们的每个构建都在zipariing上失败了... APK zipmays和构建在使用Android Studio IDE时很好,但在Azure Devops管道中失败了。 以下是Azure中zipalign的开始: 这是最后的失败消息: 最后,这是我们管道YAML的上下文: 任何帮助都将不胜感激! 编

  • 我有一个管道脚本,如下所示: ${build_type}可以是“发布”或“调试”。 当我的构建收到触发器时,我希望我的管道为${build_type}中的每个参数运行一次,然后向我发送一封电子邮件,其中包含有关两个构建的报告。 我怎样才能做到这一点? 我试图在编译阶段内定义一个并行块,并在那里设置build_type,但这并不能使其他阶段并行运行。

  • 我试图在Beam管道完成后,在Google DataFlow上运行一个函数(或管道)。 目前,我已经构建了一个hack来运行该函数,方法是使用 ... func在哪里: 但是有更好的方法吗?

  • 我是否应该使用两种不同的渠道来消费和发布消息?

  • 问题内容: 目标 在同一节点上运行声明性Jenkins管道的多个阶段。 安装程序 这只是显示问题的一个最小示例。有2个Windows节点“ windows-slave1”和“ windows-slave2”,均标有“ windows”标签。 注意:我真正的Jenkinsfile无法使用全局代理,因为存在需要在不同节点上运行的阶段组(例如Windows与Linux)。 预期行为 Jenkins根据标