基于 Yaml 的管道 - 在 运行 时间从下拉列表中设置池名称

Yaml based pipeline - setting the pool name at run time from the drop down

我有这个 yaml,如何将池设置为在下拉列表中选择的值?显然,我现在所拥有的是行不通的。它抱怨在此上下文中不允许使用模板表达式。

parameters:
- name: InstallNodeJS
  displayName: 'Install Node.js'
  type: boolean
  default: false

- name: AgentPoolSelector
  displayName: Select Agent Pool
  type: string
  default: Default
  values:
   - Default
   - Cloud
   - Dev Machines

variables:
  custom.branch: 'my-branch'
  
pool:
  name: $ {{ parameters.AgentPoolSelector }}

steps:
  - ${{ if eq(parameters.InstallNodeJS, true) }}:
     - template: templates/nodejs-install.yml

根据我的测试,要根据 Runtime parameters 设置池名称,我们应该将池插入一个 job/stage-level。您可以尝试使用这种格式来解决问题:

parameters:
- name: InstallNodeJS
  displayName: 'Install Node.js'
  type: boolean
  default: false

- name: AgentPoolSelector
  displayName: Select Agent Pool
  type: string
  default: Default
  values:
   - Default
   - Cloud
   - Dev Machines

variables:
  custom.branch: 'my-branch'
  
jobs:
- job:
  displayName: FirstJob
  pool: 
    name: ${{ parameters.AgentPoolSelector }}
  steps:
    - ${{ if eq(parameters.InstallNodeJS, true) }}:
      - template: templates/nodejs-install.yml