如何让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():当作业状态为失败时返回truecanceled():当流水线被手动取消时返回trueor():逻辑或运算符,只要其中一个条件满足,就会触发任务执行
这样配置后,只有在Cypress测试失败导致作业失败,或者流水线被手动取消的场景下,发布测试截图的任务才会运行,解决了之前用always()导致全测试通过时任务执行出错的问题。
内容的提问来源于stack exchange,提问作者Kieran M
相关产品推荐
相关产品推荐

