You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PublishBuildArtifacts@1任务仅在流水线失败或取消时执行?

Azure DevOps流水线:仅在作业失败或取消时运行发布任务

Azure DevOps没有内置的canceledOrFailed()函数,但可以通过逻辑表达式组合实现你的需求。你可以直接使用or(failed(), canceled())作为任务的condition条件,这样就能让发布任务仅在作业失败或被取消时执行。

具体实现示例

在你的YAML流水线中,修改PublishBuildArtifacts@1任务的condition配置:

- task: PublishBuildArtifacts@1
  displayName: '发布失败测试截图'
  inputs:
    PathtoPublish: '$(Build.SourcesDirectory)/cypress/screenshots'
    ArtifactName: 'FailedTestScreenshots'
    publishLocation: 'Container'
  condition: or(failed(), canceled())

表达式说明

  • failed():当作业状态为失败时返回true
  • canceled():当流水线被手动取消时返回true
  • or():逻辑或运算符,只要其中一个条件满足,就会触发任务执行

这样配置后,只有在Cypress测试失败导致作业失败,或者流水线被手动取消的场景下,发布测试截图的任务才会运行,解决了之前用always()导致全测试通过时任务执行出错的问题。

内容的提问来源于stack exchange,提问作者Kieran M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:45:54