sna*_*ark 13 azure-devops azure-pipelines azure-pipelines-tasks azure-pipelines-yaml
我的基于 YAML 的 Azure DevOps 管道包含多个任务,其中continueOnError: true. 我故意这样做,以便即使其中一些测试套件失败(每个任务运行不同的测试套件),我也可以运行所有测试套件。目前,如果这些任务中的任何一个失败,构建将被标记为“部分成功”。现在我如何强制将构建标记为“失败”?
我可以通过在每个任务失败时设置构建变量来手动执行此操作,然后在最后一步中检查该变量的值。但是,如果管道中的任何先前步骤失败,那么强制构建失败的最简单方法是什么?
sna*_*ark 19
将这些任务之一添加到每个作业的末尾似乎可以解决问题:
- bash: |
echo AGENT_JOBSTATUS = $AGENT_JOBSTATUS
if [[ "$AGENT_JOBSTATUS" == "SucceededWithIssues" ]]; then exit 1; fi
displayName: Fail build if partially successful
Run Code Online (Sandbox Code Playgroud)
该echo行是可选的。请参阅此处的Azure 文档,了解调用的代理变量Agent.JobStatus及其可以采用的值。
或者您可以使用Azure的内置条件直接检查变量:
- bash: exit 1
displayName: Fail build if partially successful
condition: eq(variables['Agent.JobStatus'], 'SucceededWithIssues')
Run Code Online (Sandbox Code Playgroud)
让bash任务返回任何非零值将导致它在condition满足时失败。
| 归档时间: |
|
| 查看次数: |
23114 次 |
| 最近记录: |