【问题标题】:Azure Devops pipeline finish with warning badge when a job failed作业失败时,Azure Devops 管道完成并带有警告标志
【发布时间】:2020-04-08 12:56:52
【问题描述】:

我有一个包含一些作业的管道 (Azure Devops yaml)。 它们并行运行。 但是当一个失败时,构建以警告而不是错误标志结束。 为什么? 我预计管道会出错。

编辑: pipelines.yml

pool:
  name: Default


jobs:
- job: FirstJob
  steps:
  - script: echo First!

- template: template.yml
  parameters:
     name: Second

- template: template.yml
  parameters:
     name: Third

- template: template.yml
  parameters:
     name: Fourth

- template: template.yml
  parameters:
     name: Fifth

- template: template.yml
  parameters:
     name: Sixth

- template: template.yml
  parameters:
     name: Seventh

模板.yml:

parameters:
  - name: name
    type: string
    default: -- 

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

  steps:
    - task : AddTag@0
      inputs:
        tags: '$(BuildTag)'

    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'
        projects: 'foo'
      condition: and(succeeded(), eq(variables['BuildTag'], 'Sixth'))

我发现我的错误是 continueOnError: true

【问题讨论】:

  • 我已经创建了一个示例,但无法重现此问题,您介意分享一个简单的示例,例如 yaml 文件给我,以便我可以重现此问题吗?您的项目中是否有任何设置?
  • 我会尝试一些东西。所有作业(第一个除外)都来自模板。有可能这是一个竞争条件吗?同一个代理的不同工作?我的代理比工作略少。这是来自本地代理。
  • @LeoLiu-MSFT 通过示例,我可以看出我的错误。另一方面,即使构建以 PR 策略中的“警告标志”结束,“警告”=“成功”。这是预期的行为吗?
  • 抱歉回复晚了。我刚刚从其他线程中解脱出来。我可以使用您的示例重现此问题,您可以查看我的答案以获取更多详细信息。

标签: azure-devops yaml


【解决方案1】:

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

感谢您的 cmets 和样品,这让我找到了这个问题的原因:

属性continueOnError此行为是设计的,不是错误。目前没有办法修复。

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

我们甚至可以在非 YAML 任务中使用 Control Options Continue on error 重现此问题:

另外,不影响PR的完成。

要解决此问题,您可以在 YAML 中对其进行评论。如果您有需要,您可以为以后的工作设置condition: always()

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

  steps:
   ...

- job: Second
  condition: always()

- job: Third
  condition: always()

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2022-10-25
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2020-05-13
    • 2021-07-17
    相关资源
    最近更新 更多