Call Step Variable from Main Yml File Using Template

Call Step Variable from Main Yml File Using Template

I am using yaml pipeline with azureDevops

I am try to use variable type step in my template

Below is my template file build.yml

parameters:
  - name: dotnetrestore
    type: step
    default:
      - task: DotNetCoreCLI@2
        displayName: dotnet restore
        inputs:
          command: restore
          projects: "**/*.csproj"

Is it possible to call this step variable from my main pipeline

For example here this example is doing within the same file. Below example i got from

parameters:
- name: myString
  type: string
  default: a string
- name: myMultiString
  type: string
  default: default
  values:
  - default
  - ubuntu
- name: myNumber
  type: number
  default: 2
  values:
  - 1
  - 2
  - 4
  - 8
  - 16
- name: myBoolean
  type: boolean
  default: true
- name: myObject
  type: object
  default:
    foo: FOO
    bar: BAR
    things:
    - one
    - two
    - three
    nested:
      one: apple
      two: pear
      count: 3
- name: myStep
  type: step
  default:
    script: echo my step
- name: mySteplist
  type: stepList
  default:
    - script: echo step one
    - script: echo step two

trigger: none

jobs: 
- job: stepList
  steps: ${{ parameters.mySteplist }}
- job: myStep
  steps:
    - ${{ parameters.myStep }}

1 Answer

Of course we can use single task as step template. My start.yml is below.

parameters:
- name: dotnetrestore # the name of the parameter
  type: step # data type is Step
  default: 
    task: DotNetCoreCLI@2
    displayName: dotnet restore
    inputs:
      command: restore
      projects: "**/*.csproj"

steps:
  - ${{ parameters.dotnetrestore }}  

We can call this step variable from my main pipeline.

trigger:
- none

pool:
  vmImage: 'windows-latest'

steps:
- template: start.yml
- script: echo step two

Update>>If you want to use dotnetcore step parameter in my main pipeline. The start.yml is below.

parameters:
- name: dotnetrestore # the name of the parameter
  type: step # data type is Step
  default: 
    script: echo This is default steps

steps:
  - ${{ parameters.dotnetrestore }}  

We can specify parameter for this step variable from main pipeline.

trigger:
- none

pool:
  vmImage: 'windows-latest'

steps:
- template: start.yml
  parameters:
    dotnetrestore:
      task: DotNetCoreCLI@2
      displayName: dotnet restore
      inputs:
        command: restore
        projects: "**/*.csproj"
- script: echo step two
5

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

James H. Sterling
Author

James H. Sterling

James Sterling reports on renewable energy developments, climate policy, ecological conservation, and green tech innovations around the globe.