我有一个在Yaml模板中声明的变量,例如
# File: vars.yml
variables:
- name: firstvar
value:'first var value'
- name: secondvar
value:'second var value'
在管道中,我正在使用扩展模板
trigger:
- none
extends:
template: resource-template.yml
paramters:
uservariablestemplate: <i want to pass above variable yaml template here>
因为我的扩展模板使用了其他变量,所以应该在其中使用该用户定义的变量
# File: resource-template.yml
parameters:
- name: uservariablestemplate
type: string
default: none
resources:
repositories:
- repository: samplerepo
type: git
name: myproject/myrepo
variables:
- template: centralvariables.yml@samplerepo
- template: <i want to use variable template from user here>
steps:
- script: echo "Testing resource template"
任何帮助将不胜感激。或任何其他解决方法来实现此目的。
答案 0 :(得分:0)
您只需将变量模板文件名传递给参数。例如:
trigger:
- none
extends:
template: resource-template.yml
paramters:
uservariablestemplate: vars.yml
然后在模板resource-template.yml
中,使用${{parameters.uservariablestemplate}}
检索变量模板。参见以下示例:
parameters:
- name: uservariablestemplate
type: string
default: none
resources:
repositories:
- repository: samplerepo
type: git
name: myproject/myrepo
variables:
- template: centralvariables.yml@samplerepo
- template: ${{parameters.uservariablestemplate}}
steps:
- script: echo "Testing resource template"
如果变量模板文件位于另一个仓库中。您需要在“回购资源”部分中定义回购。例如:
parameters:
- name: uservariablestemplate
type: string
default: none
resources:
repositories:
- repository: samplerepo
type: git
name: myproject/myrepo
- repository: variableRepo
type: git
name: myVariableRepo
variables:
- template: centralvariables.yml@samplerepo
- template: ${{parameters.uservariablestemplate}}@variableRepo
steps:
- script: echo "Testing resource template"
更新:
要动态设置存储库名称,可以尝试使用runtime parameters。如下所示:定义运行时参数repo
:
trigger: none
parameters:
- name: repo
type: string
default: none
extends:
template: resource-template.yml
parameters:
uservariablestemplate: vars.yml
然后,您可以在以下Yaml中使用${{parameters.repo}}
来参考该仓库。
运行管道时。您将能够设置存储库名称: