如何在Azure devops管道池中要求多个代理计算机?

问题描述

我在寻找是否可以在“代理池”需求中指定代理列表?在用户界面中,天蓝色管道只有两个选项等于和存在。因此,我尝试添加两个需求,但管道仅接受第一个需求

Pipeline UI

yaml中的相同内容如下

pool:
  name: AWS Pool
  demands:
  - Agent.Name -equals simLin02
  - Agent.Name -equals ubuAgent01

我想知道是否有任何逻辑方法可以指定yaml中的代理机器列表,例如以下或其他可以传递代理名称列表的替代方法(特定的代理名称,因为不是池中的所有代理都有所需的能力)供管道选择。

pool:
  name: AWS Pool
  demands:
  - Agent.Name -in (simLin02,ubuAgent01)

解决方法

对不起,但是据我所知,Azure Devops不支持使用上述逻辑方式指定代理计算机列表。相反,如果我们要传递代理列表以供管道选择,则可以定义user-defined capabilities。参见:

enter image description here

例如:如果我们为代理RunTestsimLin02定义了一个名为ubuAgent01的自定义功能,那么我们可以轻松地使用类似这样的方法来选择包含这两个代理的列表:

pool:
  name: Default
  demands: RunTest

由于仅代理simLin02ubuAgent01包含RunTest功能,它将选择其中一个来运行管道。实际上,其效果与- Agent.Name -in (simLin02,ubuAgent01)相同,但语法不受支持。