Tho*_*mas 20 azure-devops azure-pipelines azure-pipelines-yaml
我正在 yaml 中构建一个复杂的管道,并尝试在两个作业之间创建依赖关系,以便后一个作业在前一个作业之后运行,但前提是前者设置为基于参数运行。我似乎无法弄清楚这是否可行。
我有一个这样定义的管道:
parameters:
- name: doJobA
type: boolean
stages:
jobs:
- job: JobA
condition: eq('${{ parameters.doJobA }}', true)
# ... details removed for brevity
- job: JobB
dependsOn: JobA
# ... details removed for brevity
Run Code Online (Sandbox Code Playgroud)
JobB应该在JobAifparameters.doJobA为 true 后运行,或者如果parameters.doJobA为 false 则立即运行。如果不满足条件,简单地添加dependsOn条件就会导致跳过,这是有道理的,但我希望它无论如何都能运行。JobBJobA
dependsOn是否可以以这种方式定义条件?
编辑:我遇到了一个额外的问题,导致下面的解决方案无法使用。我需要条件依赖于先前运行的 PowerShell 脚本设置的变量,而不是基于参数。
小智 35
来自https://elanderson.net/2020/05/azure-devops-pipelines-depends-on-with-conditionals-in-yaml/的更简单的解决方案
parameters:
- name: doJobA
type: boolean
stages:
jobs:
- job: JobA
condition: eq('${{ parameters.doJobA }}', true)
# ... details removed for brevity
- job: JobB
dependsOn: JobA
condition: in(dependencies.JobA.result, 'Succeeded', 'Skipped')
# ... details removed for brevity
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29128 次 |
| 最近记录: |