将多个排队的Azure DevOps组合在一起运行管道作业

时间:2020-06-17 14:33:50

标签: azure-devops build-pipeline

我有一个包含多个代理的自定义代理池,每个代理具有相同的功能。此代理程序池用于运行许多名为A1A2A3等的YAML构建管道作业。这些A*作业中的每一个都会触发不同的YAML构建管道作业称为B。在此方案中,A*个作业的多个同时完成将触发多个B个同时作业。但是,B作业已设置为自动互锁,因此一次只能运行一个实例。令人高兴的是,当B作业运行时,它将消耗所有现有的A*输出(出于安全原因,A*B也是互锁的)。

不幸的是,这意味着在多个同时执行的B作业中,大多数作业在处理完所有A*作业的所有输出之后都被困在等待第一个作业完成,而其余的则只能等待B作业的互锁实例中已排队和/或正在运行但被阻塞的实例一次可以继续运行,每个实例都没有消耗,因为所有A*输出都已被处理。

是否有手表可以使Azure DevOps一起将作业B的多个实例一起批处理?换句话说,如果已经有一个B作业实例正在运行或排队,是否不添加另一个作业实例?

1 个答案:

答案 0 :(得分:0)

是否有手表可以使Azure DevOps一起将作业B的多个实例一起批处理?换句话说,如果已经有一个B作业实例正在运行或排队,是否不添加另一个B作业实例?

很抱歉给您带来不便。

此行为是设计的。 AFAIK,没有这样的方式/功能将多个排队的构建管道组合成一个。

此外,我个人认为您的要求是合理的。您可以在我们的UserVoice网站(https://developercommunity.visualstudio.com/content/idea/post.html?space=21)上添加对此功能的请求,这是我们提供产品建议的主要论坛。感谢您帮助我们构建更好的Azure DevOps。

enter image description here

希望这会有所帮助。