0

我正在尝试在 azure 管道中参数化 agent.name。目标是为用户提供在所需机器上部署代码的选项。所以我创建了一个包含几台机器的池,并参数化了 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

请帮助解决此问题。

4

2 回答 2

1

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

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 运行管道:

在此处输入图像描述

在此处输入图像描述

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

于 2021-09-20T09:32:54.977 回答
0

下面的 yaml 工作。

variables:
  vmname: machinename
pool:
  name: poolname
  demands:
    - agent.name -equals $(vmname)
于 2021-09-20T09:17:42.433 回答