基于 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
我有这个 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