我在舞台上使用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: |
...
怎么办?
答案 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