使用模板从主 yml 文件调用步骤变量

时间:2021-03-18 19:43:22

标签: azure-devops

我正在使用带有 azureDevops 的 yaml 管道

我尝试在我的模板中使用变量类型步骤

下面是我的模板文件 build.yml

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

是否可以从我的主管道中调用此步骤变量

例如这里这个例子是在同一个文件中做的。下面的例子是我从 https://docs.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops#variable-reuse

得到的
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 个答案:

答案 0 :(得分:0)

当然我们可以使用单个任务作为 step template。我的 start.yml 在下面。

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

我们可以从我的主管道中调用这个步骤变量。

trigger:
- none

pool:
  vmImage: 'windows-latest'

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

更新>>如果您想在我的主管道中使用 dotnetcore 步骤参数。 start.yml 在下面。

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

steps:
  - ${{ parameters.dotnetrestore }}  

我们可以从主管道中为此步骤变量指定参数。

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