如何在VSTS(Azure DevOps)中同时运行五个代理作业?

4
我已经创建了一个包含五个代理作业的发布管道,我想同时启动这五个作业。
例如: vsts 在这个例子中,我需要同时启动所有代理作业,并且在同一时间执行独特的任务(等待10秒钟)。
VSTS(Azure DevOps)有没有这样的选项?

为什么不将这5个任务放在一个代理作业中,并像下面的答案一样同时运行该作业呢? - Shayki Abramczyk
4个回答

3
你也可以只使用5个不同的阶段(取决于你正在做什么)。然后,你可以充分利用管道模型的全部功能,具有前置和后置阶段,无论你希望什么。这在其他答案中也提到了使用不同的代理作业,但这更加直接。此外,你还可以轻松克隆阶段。
我不确定你试图通过等待10秒钟来实现什么,但是这很容易通过PowerShell步骤完成。选择单选按钮“内联”并键入以下内容:
Start-Sleep -Seconds 10

这是一个可能同时完成你想要的工作的管道示例,但请记住,每个代理作业(无论是在一个阶段中多个作业还是在多个单个作业阶段中)都必须找到一个能够、可用和空闲的代理,否则作业将在等待队列中等待!

输入图像描述


1
在发布流程中点击“代理作业”,然后展开“执行计划”并点击“多代理”。

enter image description here


1
我尝试了您的方法,但是“Multi-Agent”选项只接受代理作业并在多个代理上运行相同的任务(在您的示例中为5个)。是否可能在多个代理上同时运行不同的任务,而无需为其创建单独的阶段?为什么“发布管道”的行为与“构建管道”如此不同。在那里,每个“代理作业”都会并发执行,为什么不在“发布管道”中简单地执行呢? - Mar Tin
1
@MarTin 我不这么认为 :/ 你可以添加更多的阶段(每个阶段=另一个代理),但我不知道它是否会并行运行。 - Shayki Abramczyk

1
我认为您需要创建5个阶段,因为在Azure DevOps的发布流水线中,一个阶段中的作业不能并行。请参阅Microsoft文档 或者,如果您想在多个代理上运行同一组任务集,则可以使用下面显示的多代理选项。 ADO多代理选项

-1
如果您想要并行执行作业,则选择多代理配置,但如果您有5个(非常)不同的作业,则可以从下拉菜单“运行此作业”中选择“即使先前的作业失败”。
默认情况下,这被设置为“仅当所有先前的作业都成功时”,这意味着:
1. 您的5个作业将按照您设置它们的顺序依次执行。 2. 只要其中一个作业失败,作业链就会停止。
请注意,您可以单独指定每个代理队列上将执行哪个作业,默认情况下它们都将进入同一个队列。如果您在单个队列上并行运行5个作业,则该队列应该有5个可用且空闲的代理以获得您期望的结果。

enter image description here


抱歉,我在你的问题中忽略了中间那一行。所以是的,选择我提到的其中一个或选择一个自定义变量并进行调整,这样您可以进一步定制您的发布行为。 - DanDan
1
有没有一种方法可以设置这样的方式,即仅在代理作业A成功后,代理作业B和代理作业C并行运行? - ajbeaven
这适用于构建管道,但出于某种原因,对发布管道没有影响。我认为这是一个微软的错误。 - Alain

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接