【发布时间】: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