gpt4 book ai didi

windows - Azure 管道 : How to make a task dependent on a previous task?

转载 作者:行者123 更新时间:2023-12-04 11:23:43 26 4
gpt4 key购买 nike

我在 windows-2019 上使用 Azure-Pipelines 进行 CI 集成。这是一个场景,任务 # 的平均发生顺序(1 是第一个)。

在任务 2 中,我正在运行测试。在任务 3 中,我想生成关于这些测试的报告,无论测试是成功还是失败(因此将 - condition: succeededOrFailed() 添加到任务 3)。

但是,在任务 1 中,我正在构建 repo。如果构建失败,我不希望运行任何后续任务。但由于任务 3 有 condition: succeededOrFailed() ,它仍然运行并产生另一个错误。我的目标是让任务 3 运行,无论任务 2 是否失败或成功,但如果任务 1 失败则不会。

我不确定处理这个问题的最佳方法。是否可以使任务 3 依赖于任务 2?或者,如果任务 1 失败,我可以立即停止整个管道吗?

另外,对于任务 1,我尝试了 continueOnError: false因为我认为它会在那里停止管道,但它并没有像我想的那样做。任何帮助将非常感激!

最佳答案

My goal is to have task 3 run regardless if task 2 fails or succeeds, but not if task 1 fails.



根据您的要求,您可以连接任务 3 和任务 1。

这是 Yaml 模板:
trigger:
- master

pool:
vmImage: 'ubuntu-latest'

steps:
- task: task1
...


- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
# Write your PowerShell commands here.

Write-Host "##vso[task.setvariable variable=task.A.status]Success"
condition: succeeded()

- task: task2
...
condition: succeeded()

- task: task 3
....
condition: and (succeededOrFailed(), eq(variables['task.A.status'], 'success'))

说明:
Powershell task用于设置 output variable对于任务 1。当任务 1 成功时,该变量将设置值 success .此变量可用于以下任务。

任务 2 中的条件取决于任务 1。

任务3中的条件需要满足两个条件 同时 . (1.无论成功还是失败,2.自定义变量值为success)。

那么只有当任务 1 成功时,任务 3 才会运行。无论任务 2 失败还是成功,任务 3 都会运行。

希望这可以帮助。

关于windows - Azure 管道 : How to make a task dependent on a previous task?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62436503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com