如何在 azure 管道中参数化 azure agent.name?

How to parameterize azure agent.name in azure pipeline?

我正在尝试在 azure 管道中参数化 agent.name。 objective 是为用户提供在所需机器上部署代码的选项。所以我创建了一个包含几台机器的池并参数化 agent.name

代码

parameters
- name: machinename
  displayName: machinename
  type: string
  values:
  - 10.72.1.123
  - 10.72.1.124

pool:
  name: PoolA
  demands:
    - agent.name -equals ${{ parameters.machinename}}

错误: 当尝试 运行 上述代码时,出现以下错误。

A template expression is not allowed in this context

请帮忙解决这个问题。

下面的 yaml 有效。

variables:
  vmname: machinename
pool:
  name: poolname
  demands:
    - agent.name -equals $(vmname)

您可以尝试使用此解决方法:

trigger: none

pool:
  name: Default
  demands:
  - agent.name -equals $(machinename)

jobs:
- job:
  displayName: 'Job 1'
  steps:
  - task: Bash@3
    inputs:
      targetType: 'inline' 
      script: |
        echo "$(machinename)"

然后请定义管道变量(在编辑管道时):

使该变量可被覆盖:

然后n个运行管道:

您不会获得下拉列表,但这是解决此问题的唯一方法。