Azure DevOps模板作为作业的依赖项

时间:2020-01-27 19:29:55

标签: azure-devops

我在舞台上使用Azure DevOps模板,并且我希望仅在完成模板中的作业( dependsOn )时才开始某些作业:

- stage: stage1
  jobs:
  - job: job1
    steps:
    - bash: |
      ...

  - template: template1.yml
    parameters:
      param1: 'val1'

  - job: job2
    **dependsOn: how to put `template: template1.yml` here?**
    steps:
    - bash: |
      ...

怎么办?

2 个答案:

答案 0 :(得分:4)

Eric Smith's answer为基础,您可以输入模板将依赖的作业名称作为参数。

#template1.yml

jobs:
- job: mytemplateJob1
  steps:
  - script: npm install
#template2.yml
parameters:
  DependsOn: []

jobs:
- job: mytemplateJob2
  dependsOn: ${{ parameters.DependsOn }}
  steps:
  - bash: pwd

通过将DependsOn的默认值设置为[],可以确保如果没有为DependsOn传递任何值,则模板将运行,但是您可以选择创建类似的依赖项:

stages:
- stage: stage1
  jobs:
  - template: template1.yml  # Template reference

  - template: template2.yml
    parameters:
      DependsOn: 'mytemplateJob1'

答案 1 :(得分:2)

您可以使用作业的名称来完成此操作,该名称是在dependsOn模板中定义的。

#template1.yml

jobs:
- job: mytemplateJob
  steps:
  - script: npm install

stages:
- stage: stage1
  jobs:
    - job: job1
      steps:
      - bash: pwd

    - template: template1.yml  # Template reference
      parameters:
        param: 'val1'

    - job: job2
      dependsOn: mytemplateJob
      steps:
        - bash: pwd