tho*_*sen 4 azure-devops azure-pipelines azure-pipelines-yaml
我试图让我的第二阶段运行,即使第一阶段的两个作业之一失败,但我无法使用作业状态检查功能让它按预期工作succeeded('JobName')。
在下面的 YAML 管道中,我希望只要Job1成功,即使Job2失败,它也会运行Stage2,但事实并非如此:
stages:
- stage: Stage1
jobs:
- job: Job1
steps:
- pwsh: echo "Job1"
- job: Job2
steps:
- pwsh: write-error "Job2 error"
- stage: Stage2
condition: succeeded('Job1')
jobs:
- job: Job3
steps:
- pwsh: echo "Job3"
Run Code Online (Sandbox Code Playgroud)
即使Job2失败,只要 Job1 成功,如何让Stage2运行?
使用always()将使Stage2始终运行,但我希望它取决于Job1的成功状态,而不管Job2状态如何。
相关文档:
看起来这不可能在下一阶段的阶段级别处理作业结果。但是您可以使用此解决方法:
trigger: none
pool:
vmImage: ubuntu-latest
stages:
- stage: Stage1
jobs:
- job: Job1
steps:
- pwsh: echo "Job1"
- job: Job2
steps:
- pwsh: write-error "Job2 error"
- stage: Stage2
dependsOn: Stage1
condition: always()
jobs:
- job: Job3
condition: in(stageDependencies.Stage1.Job1.result, 'Succeeded')
steps:
- pwsh: echo "Job3"
- job: Job4
condition: in(stageDependencies.Stage1.result, 'Succeeded')
steps:
- pwsh: echo "Job4"
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到相关文档。
| 归档时间: |
|
| 查看次数: |
7624 次 |
| 最近记录: |