如何在 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个运行管道:
您不会获得下拉列表,但这是解决此问题的唯一方法。
我正在尝试在 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个运行管道:
您不会获得下拉列表,但这是解决此问题的唯一方法。