Azure devops 作业失败时,Azure Devops管道完成并带有警告标志

Azure devops 作业失败时,Azure Devops管道完成并带有警告标志,azure-devops,yaml,Azure Devops,Yaml,我有一个管道(Azure Devops yaml)和一些工作。 它们并行运行。 但当一个失败时,构建将以警告而不是错误标记结束。 为什么? 我以为管道会以错误告终 编辑: 1.yml 池: 名称:默认值 工作: -工作:第一份工作 步骤: -剧本:回声第一! -模板:template.yml 参数: 姓名:第二 -模板:template.yml 参数: 姓名:第三 -模板:template.yml 参数: 姓名:第四 -模板:template.yml 参数: 姓名:第五 -模板:templat

我有一个管道(Azure Devops yaml)和一些工作。 它们并行运行。 但当一个失败时,构建将以警告而不是错误标记结束。 为什么? 我以为管道会以错误告终

编辑: 1.yml

池:
名称:默认值
工作:
-工作:第一份工作
步骤:
-剧本:回声第一!
-模板:template.yml
参数:
姓名:第二
-模板:template.yml
参数:
姓名:第三
-模板:template.yml
参数:
姓名:第四
-模板:template.yml
参数:
姓名:第五
-模板:template.yml
参数:
姓名:第六
-模板:template.yml
参数:
姓名:第七
template.yml:

参数:
-姓名:姓名
类型:字符串
默认值:——
工作:
-作业:${parameters.name}
德彭森:第一份工作
错误:真
变量:
BuildTag:${{parameters.name}
步骤:
-任务:AddTag@0
投入:
标记:“$(BuildTag)”
-任务:DotNetCoreCLI@2
投入:
命令:“构建”
项目:“富”
条件:and(succeed(),eq(变量['BuildTag'],'Sixth'))
我用continueOnError:true看出了我的错误

作业失败时,Azure Devops管道完成并带有警告标志

感谢您的评论和示例,让我找到了此问题的原因:

属性
continueOnError
此行为是由设计的,不是bug。目前没有办法解决它

如果我们设置了
continueOnError:true
,这将使未来的作业即使失败也应该运行。为了实现这一点,Azure Devops将使用“欺骗方式”将错误视为警告,这样错误就不会阻止构建。这是作业失败的原因,但管道将其显示为警告

我们甚至可以在非YAML任务中使用控制选项
继续出错
重现此问题:

此外,这并不影响PR的完成

要解决此问题,您可以在YAML中对其进行评论。如果需要,您可以为将来的作业设置
条件:始终()

jobs:
- job: ${{ parameters.name }}
  dependsOn: FirstJob
  variables:
      BuildTag: ${{ parameters.name }}

  steps:
   ...

- job: Second
  condition: always()

- job: Third
  condition: always()
希望这有帮助

作业失败时,Azure Devops管道完成并带有警告标志

感谢您的评论和示例,让我找到了此问题的原因:

属性
continueOnError
此行为是由设计的,不是bug。目前没有办法解决它

如果我们设置了
continueOnError:true
,这将使未来的作业即使失败也应该运行。为了实现这一点,Azure Devops将使用“欺骗方式”将错误视为警告,这样错误就不会阻止构建。这是作业失败的原因,但管道将其显示为警告

我们甚至可以在非YAML任务中使用控制选项
继续出错
重现此问题:

此外,这并不影响PR的完成

要解决此问题,您可以在YAML中对其进行评论。如果需要,您可以为将来的作业设置
条件:始终()

jobs:
- job: ${{ parameters.name }}
  dependsOn: FirstJob
  variables:
      BuildTag: ${{ parameters.name }}

  steps:
   ...

- job: Second
  condition: always()

- job: Third
  condition: always()

希望这有帮助。

我已经创建了一个示例,但无法复制此问题,您是否介意与我共享一个简单的示例,如yaml文件,以便我可以复制此问题?您的项目中有任何设置吗?我将尝试做一些设置。所有作业(第一个作业除外)都来自模板。这可能是一种竞赛条件吗?同一个代理上有不同的工作?我的经纪人比乔布斯少一点。这是onprem代理商的。@LeoLiu MSFT有了样品,我可以看出我的错误。另一方面,即使构建在PR策略“警告”=“成功”中以“警告徽章”结束。这是预期的行为吗?很抱歉回复晚了。我刚从其他线程中解放出来。我可以用你的样本复制这个问题,你可以检查我的答案以了解更多细节。我已经创建了一个样本,但无法复制这个问题,你介意与我共享一个简单的样本,比如yaml文件,以便我可以复制这个问题吗?您的项目中有任何设置吗?我将尝试做一些设置。所有作业(第一个作业除外)都来自模板。这可能是一种竞赛条件吗?同一个代理上有不同的工作?我的经纪人比乔布斯少一点。这是onprem代理商的。@LeoLiu MSFT有了样品,我可以看出我的错误。另一方面,即使构建在PR策略“警告”=“成功”中以“警告徽章”结束。这是预期的行为吗?很抱歉回复晚了。我刚从其他线程中解放出来。我可以用你的样品复制这个问题,你可以查看我的答案以了解更多细节。