Sam
Sam

Reputation: 14586

Azure Pipeline Get Template name from variable

Please consider the following:

- job: Backend
   steps:
    
    - template: $(ClassLibraryTemplate)
      parameters:
        projectName: 'Core'
        solutionPath: 'Source/Core.sln'

ClassLibraryTemplate is defined as a pipeline variable. But when I run the build, it fails because the variable is not replaced by its value and the template is not found.

Is it not possible to store the template name in a variable ?

Upvotes: 4

Views: 2028

Answers (1)

starian chen-MSFT
starian chen-MSFT

Reputation: 33708

For Azure DevOps YAML pipeline, the template get processed at compile time. However, the $(ClassLibraryTemplate) get processed at the runtime. That's why it fails.

More information: Understand variable syntax

You could define variable or parameter in your YAML pipeline, then use template expression. For parameter, you could specify value when queue/run pipeline in pop-up window.

For example:

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 }} 

Upvotes: 5

Related Questions