TL;DR
在准备运行管道时,是否可以在模板YAML中包含参数及其值,并让主YAML读取列表并在下拉列表中显示它们?
与MS的“变量重用”示例非常相似,如here所示。
# File: vars.yml
variables:
favoriteVeggie: 'brussels sprouts'# File: azure-pipelines.yml
variables:
- template: vars.yml # Template reference
steps:
- script: echo My favorite vegetable is ${{ variables.favoriteVeggie }}.详细信息
我有一个大约50个值的列表,这些值每周都在增长。当运维人员运行我的管道时,我希望他们从下拉列表中选择一个值。
这可以通过在管道YAML文件(azure-pipeline.yml)中指定一个参数块来实现:
parameters:
- name: subscription
displayName: Subscription Name
type: string
default: sub A
values:
- sub A
- sub B
- sub C
- sub D这给出了UI中的下拉列表:

在我上面的例子中,只有四个值,然而,我们有超过50个值(订阅)并且还在增长。我正在尝试设计一种方法,使运维人员不必编辑管道,2)保持主管道文件的简洁性。
我知道目前还没有办法动态填充值列表,但我正在考虑使用一个只包含值的模板YAML文件,它将读取模板,填充下拉列表。然后,让脚本/管道动态更新模板文件中的值,这是一个相当简单的任务。
阅读文档和一些博客,我相信这可能是可能的,但我还没有设法破解它。
参数块似乎可以接受“任何YAML结构”,尽管我还没有找到一个合适的例子。在其他事情中,这是我尝试过的:
模板/订阅.yml
- name: subscription
displayName: Subscription Name
type: string
default: sub A
values:
- sub A
- sub B
- sub C
- sub D``azure-pipelines.yml
...
template: templates/subscriptions.yml
parameters:
subscription: []
stages:
- stage: Example
displayName: 1.0 Demo Stage
jobs:
...我想知道我的问题是不是我需要在一开始就读取参数,而这是不受支持的。它只适用于阶段/作业等。
如果任何人有任何想法,如果你能给我指明正确的方向,我将不胜感激。
T.I.A.
发布于 2021-05-06 11:01:53
根据你方的要求,恐怕目前还没有能满足你方要求的方法。
Azure Devops中的yaml模板需要由主yaml(例如azure-pipelines.yml)引用才能传递该值。
请参考此文档:Yaml schema。
yaml中的参数字段无法调用YAML中的参数模板。因此,如果仅定义纯参数,则无法在主yaml中调用它们。
此方法仅受变量支持。
但是你的需求是有意义的。我建议你可以用Our UserVoice Site提交一份建议单。
https://stackoverflow.com/questions/67393008
复制相似问题