Azure devops 参数可以在一个YAML文件中定义并在另一个YAML文件中重用吗? TL;博士

Azure devops 参数可以在一个YAML文件中定义并在另一个YAML文件中重用吗? TL;博士,azure-devops,azure-pipelines,azure-pipelines-yaml,Azure Devops,Azure Pipelines,Azure Pipelines Yaml,在准备运行管道时,是否可以在模板YAML中包含参数及其值,并让主YAML读取列表并在下拉列表中显示它们 非常类似于“变量重用”的MS示例,如图所示 细节 我有一个大约50个值的列表,它们每周都在增长。 当Ops人员运行我的管道时,我希望他们从下拉列表中选择一个值 这可以通过在管道YAML文件(azure pipeline.yml)中指定参数块来实现: 这为我提供了UI中的下拉列表: 在我上面的例子中,只有四个值,但是,我们有超过50个值(订阅)并且在增长。我正试图设计一种方法,使运营部不必编辑

在准备运行管道时,是否可以在模板YAML中包含参数及其值,并让主YAML读取列表并在下拉列表中显示它们

非常类似于“变量重用”的MS示例,如图所示

细节 我有一个大约50个值的列表,它们每周都在增长。 当Ops人员运行我的管道时,我希望他们从下拉列表中选择一个值

这可以通过在管道YAML文件(
azure pipeline.yml
)中指定参数块来实现:

这为我提供了UI中的下拉列表:

在我上面的例子中,只有四个值,但是,我们有超过50个值(订阅)并且在增长。我正试图设计一种方法,使运营部不必编辑管道2)保持主管道文件简洁

我知道目前没有办法动态填充值列表,但我正在考虑的是使用一个模板YAML文件,该文件只包含值,它将读取模板,填充下拉列表。然后,让脚本/管道动态更新模板文件中的值是一项相当简单的任务

阅读文档和一些博客,我相信这是可能的,但我没有设法破解它

看来参数块可以采用“任何YAML结构”,尽管我还没有找到合适的例子。除此之外,我也尝试过:

templates/subscriptions.yml azure-pipelines.yml 我想知道我的问题是否是我需要在开始时正确读取参数,而这是不受支持的。它只适用于舞台/工作等

如果有人有任何想法,如果你能为我指出正确的方向,我将不胜感激


T.I.A.

根据您的要求,我恐怕目前没有这样的方法能够满足您的要求

Azure Devops中的yaml模板需要由主yaml(例如Azure pipelines.yml)引用才能传递值

请参阅此文件:

YAML中的参数字段无法调用YAML中的参数模板。因此,如果只定义纯参数,则不能在主yaml中调用它们

此方法仅受变量支持


但你的要求是有道理的。我建议你可以在年提交一份建议单。

好吧,参数和变量是完全不同的东西,所以我认为不可能做到你所描述的。您可能可以手动解析vars yaml,但这也可能是一条死胡同。无论如何,50个变量听起来像是一个设计问题,我更愿意尝试提出新的模板和方案——但很难说没有看到实际的管道。嗨@woter324。这张票有更新吗?如果这个建议能给你一些帮助,请随时告诉我。只是想提醒一下。嗨@Kevin Lu MSFT我想出了一个不同的方法。使用与订阅名相同的文件夹,然后使用Git检测文件夹中的新文件夹或文件。Hi@woter324。很高兴知道你能找到方法。你可以在答案中分享它并接受答案。这将有助于其他用户。
# 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 }}.
parameters:
- name: subscription
  displayName: Subscription Name
  type: string
  default: sub A
  values:
  - sub A
  - sub B
  - sub C
  - sub D
- name: subscription
  displayName: Subscription Name
  type: string
  default: sub A
  values:
  - sub A
  - sub B
  - sub C
  - sub D``

...
template: templates/subscriptions.yml
  parameters:
    subscription: []

stages:
- stage: Example
  displayName: 1.0 Demo Stage
  jobs:
...