Azure Pipeline从变量获取模板名称

Sam*_*Sam 4 azure azure-pipelines azure-pipelines-yaml

请考虑以下事项:

- job: Backend
   steps:
    
    - template: $(ClassLibraryTemplate)
      parameters:
        projectName: 'Core'
        solutionPath: 'Source/Core.sln'
Run Code Online (Sandbox Code Playgroud)

ClassLibraryTemplate被定义为管道变量。但是当我运行构建时,它失败了,因为变量没有被它的值替换并且找不到模板。

是否无法将模板名称存储在变量中?

sta*_*SFT 5

对于 Azure DevOps YAML 管道,模板在编译时进行处理。但是,$(ClassLibraryTemplate) 在运行时得到处理。这就是它失败的原因。

详细信息:了解变量语法

您可以在 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 }} 
Run Code Online (Sandbox Code Playgroud)