我的模板中有很多默认参数。我想对它们进行分类。
# template.yml
parameters:
azure:
name: cargo_test # Default job name
displayName: Cargo test # Default displayName
condition: true # Job condition
strategy: # Default strategy to test on Windows, MacOs and Linux.
matrix:
Linux:
vmImage: ubuntu-16.04
MacOS:
vmImage: macOS-10.13
Windows:
vmImage: vs2017-win2016
name: job_name
default_parameter1: default1
default_parameter2: defualt2
# rest of code
- job:A
template: template.yml
parameters:
azure:
name: test_name
此原因parameter.azure
仅包含一个字段name
。我想覆盖parameters.azure.name
而不是全部parameters.azure
结构。天青管道中可能吗?
答案 0 :(得分:0)
我想覆盖azure.name而不是所有azure结构。
似乎您担心如果只覆盖.yml
文件中的一个参数,而该参数正在使用其他template.yml
文件,则会影响所有天蓝色的结构,对吗?
如果是这样,您不必为此担心。正如您在template.yml
文件中定义的那样,它具有很多参数。在其他.yml
文件name: test_name
中使用它之后,它只会覆盖参数 name 的值,而不会影响其他参数,并且此覆盖仅适用于当前作业。
例如,如果在您的use-template.yml
中
- job:A
template: template.yml
parameters:
azure:
name: test_name
- job:B
template: template.yml
parameters:
azure:
condition: failed()
name
的覆盖将仅影响作业name
中的此参数(A
)值。 作业A
完成后,名称值将恢复为作业cargo_test
中的B
。
总而言之, template.yml 中的配置是固定的,在其他yml
中使用的配置将对template.yml
产生任何影响。因此,您不必担心如何对我们到目前为止不支持的参数进行分类。
您可以在官方文档Job templates中查看以下简单示例。如果对您的想法有任何误解,请随时纠正我。
已更新:
由于我们可以使用parameters.azure.name
获取值,因此Azure Devops应该支持这些参数分类。而且,经过测试,我得到了与您相同的结果。如果覆盖parameters.azure.name
,则与parameters.azure.name
处于同一级别的其余参数全部为空。我认为这应该是问题,需要我们的产品小组对其进行修复。
我已在我们的官方开发者社区When I overwrite the template parameter, the value be empty上提出了此问题报告。您可以关注此票证,以便在通知有任何更新时得到通知。
此外,似乎没有其他方法可以实现参数分类。刚解决此问题的耐心。固定脚本发布后,我们的工程师会在该票据中告知您。