如果以前的任何任务都失败了,如何强制Azure DevOps管道失败



我的基于YAML的Azure DevOps管道包含几个任务,其中continueOnError: true。我这样做是有意的,这样我就可以运行所有测试套件,即使其中一些测试套件失败(每个任务运行不同的测试套件(。目前,如果这些任务中的任何一个失败,则生成被标记为"部分成功"。现在,我如何强制将构建标记为"失败"?

如果失败,我可以手动地在每个任务中设置一个构建变量,然后在最后一步检查这个变量的值。但是,如果管道中之前的任何步骤都失败了,那么强制构建失败的最简单方法是什么?

在每个作业的末尾添加其中一个任务似乎可以做到这一点:

- bash: |
echo AGENT_JOBSTATUS = $AGENT_JOBSTATUS
if [[ "$AGENT_JOBSTATUS" == "SucceededWithIssues" ]]; then exit 1; fi
displayName: Fail build if partially successful

echo行是可选的。请参阅此处的Azure文档,了解名为Agent.JobStatus的代理变量及其可以获取的值。

或者,您可以使用Azure的内置条件直接检查变量:

- bash: exit 1
displayName: Fail build if partially successful
condition: eq(variables['Agent.JobStatus'], 'SucceededWithIssues')

使bash任务返回任何非零值将导致它在满足condition时失败。

相关内容

  • 没有找到相关文章

最新更新