我在azure devops中有2个构建代理和8个管道。如果为管道a启动了一次运行,并且为同一管道触发了另一次运行,Azure Devops将在另一个代理上启动第二次运行,而无需等待第一次运行完成。
如何让Azure Devops等到第一次运行完成后再开始第二次运行?
编辑:使用yaml管道而不是旧的构建/发布管道。
我认为您可以在管道的代理作业上使用向池中添加需求,这样它就会因为相同的指定条件而与同一个代理一起运行。
首先,在代理中添加一个功能。
然后,在YAML中,向池中添加需求。
pool:
name: {agent pool name}
demands: Limit -equals DisAbleParallel
它的格式是要求:{CapabilityName}-等于{CapabilityValue}
。
当您指定代理需求时,管道将只与此代理一起运行。当A正在运行时,第二个不会同时运行,因为前一个正在运行,代理正在使用。这样,第二个将运行到前面的结束。
看起来您可以通过使用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根据标
目标 在同一节点上运行声明性Jenkins管道的多个阶段。 设置 这只是说明问题的一个最小示例。有两个Windows节点“Windows-slave1”和“Windows-slave2”都标有“Windows”标签。 注意:我的real Jenkins文件不能使用全局代理,因为需要在不同的节点(例如Windows和Linux)上运行多组阶段。 预期行为 Jenkins基于标签选择阶段1中的一个节点