Azure Pipeline 从变量中获取模板名称
Azure Pipeline Get Template name from variable
请考虑以下事项:
- job: Backend
steps:
- template: $(ClassLibraryTemplate)
parameters:
projectName: 'Core'
solutionPath: 'Source/Core.sln'
ClassLibraryTemplate
定义为管道变量。但是当我 运行 构建时,它失败了,因为变量没有被它的值替换并且找不到模板。
模板名称不能存储在变量中吗?
对于 Azure DevOps YAML 管道,模板在编译时得到处理。但是,$(ClassLibraryTemplate) 在运行时得到处理。这就是它失败的原因。
更多信息:Understand variable syntax
您可以在 YAML 管道中定义变量或参数,然后使用模板表达式。对于参数,您可以在 queue/run pipeline in pop-up window.
中指定值
例如:
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 }}
请考虑以下事项:
- job: Backend
steps:
- template: $(ClassLibraryTemplate)
parameters:
projectName: 'Core'
solutionPath: 'Source/Core.sln'
ClassLibraryTemplate
定义为管道变量。但是当我 运行 构建时,它失败了,因为变量没有被它的值替换并且找不到模板。
模板名称不能存储在变量中吗?
对于 Azure DevOps YAML 管道,模板在编译时得到处理。但是,$(ClassLibraryTemplate) 在运行时得到处理。这就是它失败的原因。
更多信息:Understand variable syntax
您可以在 YAML 管道中定义变量或参数,然后使用模板表达式。对于参数,您可以在 queue/run pipeline in pop-up window.
中指定值例如:
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 }}