Azure devops Azure DevOps-动态评估需求名称

Azure devops Azure DevOps-动态评估需求名称,azure-devops,yaml,Azure Devops,Yaml,我正在寻找一种在Azure DevOps.yaml文件中设置动态需求名称的方法 目前,我们有一些由Azure DevOps服务随机选择的自托管构建代理,但有时我们需要选择一个代理来调查它不工作的原因(或其他罕见事件)。一种方法是关闭所有其他代理,并在所需的代理上进行操作(它会影响整个CI/CD)。第二种方法是添加临时管道并将所需的代理移动到下一个代理池(这需要花费时间) 我认为最好的解决方案是动态设置需求的可能性。例如,我可以在变量组中包含以下内容: “DemandName”=“IsBuildA

我正在寻找一种在Azure DevOps.yaml文件中设置动态需求名称的方法

目前,我们有一些由Azure DevOps服务随机选择的自托管构建代理,但有时我们需要选择一个代理来调查它不工作的原因(或其他罕见事件)。一种方法是关闭所有其他代理,并在所需的代理上进行操作(它会影响整个CI/CD)。第二种方法是添加临时管道并将所需的代理移动到下一个代理池(这需要花费时间)

我认为最好的解决方案是动态设置需求的可能性。例如,我可以在变量组中包含以下内容:

“DemandName”=“IsBuildAgent”

“DemandValue”=“是”

每个代理都会将此环境变量设置为ant,它将始终允许每个代理运行管道,但如果我在运行管道之前在变量下面设置

“DemandName”=“代理编号”

“DemandValue”=“BuildAgentNr6”

它将覆盖库变量,并且只有一个代理能够运行此管道

pool:
  name: MyBuildAgents
  demands: $(DemandName) -equals $(DemandValue)
DemandValue已正确计算,但现在无法设置DemandName。 有可能以稍微改变的方式实现吗?也许我应该改变语法?或者我应该把它作为一个新功能来推荐

有可能以稍微改变的方式实现吗?也许我应该改变语法?或者我应该把它作为一个新功能来推荐

你的语法是正确的

恐怕没有现成的或稍加改变的方法来实现这一目标

就像您测试一样,
DemandName
无法设置正确。这是因为根据语法规则,等式的左侧被视为字符串,而不是值。这将导致Azure devops将
需求名称作为字符串
$(DemandName)
查找,而不是
$(DemandName)
值,然后根据该值查找需求名称


希望这能有所帮助。

你能找到一个类似于你建议的解决方案吗?不幸的是,不是。我能找到的唯一体面的选择就是这个