请考虑以下内容:
- job: Backend
steps:
- template: $(ClassLibraryTemplate)
parameters:
projectName: 'Core'
solutionPath: 'Source/Core.sln'
ClassLibraryTemplate
被定义为管道变量。但是当我运行构建时,它失败了,因为变量没有被其值替换,并且找不到模板。
是否可以将模板名称存储在变量中?
答案 0 :(得分:2)
对于Azure DevOps YAML管道,模板在编译时进行处理。但是,$(ClassLibraryTemplate)在运行时得到处理。这就是为什么它会失败。
更多信息:Understand variable syntax
您可以在YAML管道中定义变量或参数,然后使用模板表达式。对于参数,可以在弹出窗口中的队列/运行管道时指定值。
例如:
parameters:
- name: temName
displayName: template name
type: string
default: steps/test.yml
trigger:
- none
variables:
- name: tem
value: steps/build.yml
jobs:
- job: Linux
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: ${{ variables.tem }}
- template: ${{ parameters.temName }}