azure-devops - 基于 Yaml 的管道 - 在运行时从下拉菜单中设置池名称
问题描述
我有这个 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
解决方案
根据我的测试,要根据运行时参数设置池名称,我们应该将池插入到一个作业/阶段级别。您可以尝试这种格式来解决问题:
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
推荐阅读
- c++ - 如何在构造函数中记录时间以及如何从 C++ 结构的析构函数中的构造中减去当前时间?
- node.js - “npm install *”中的非法指令
- python - 从网站下载所有没有 src 标签的图片
- sql - 使用连接聚合和计算不同的值
- kubernetes - Kubernetes connect to MongoDB atlas issue error parsing uri: lookup on 10.96.0.10:53: no such host
- javascript - 当变量类型存储为字符串或布尔值时,如何获取变量类型的名称?
- lua - Hammerspoon 窗口管理在辅助监视器上无法按预期工作
- algorithm - 仅通过基本运算符(MTWTFSS)构建掩码以查找特定日期是否匹配
- android - 尝试用 customrom.zip 中的 magisk 替换 supersu
- javascript - 打字稿 - 没有带有“字符串”类型参数的索引签名