Azure Конечный конвейер Devops sh со значком предупреждения при сбое задания - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть конвейер (Azure Devops yaml) с некоторыми заданиями. Они работают параллельно. Но когда происходит сбой, сборка заканчивается предупреждением, а не значком ошибки. Почему? Я ожидал, что конвейер завершится с ошибкой.

enter image description here

Редактировать: 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

template.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 .

1 Ответ

1 голос
/ 14 апреля 2020

Azure Конец конвейера Devops sh со значком предупреждения при сбое задания

Спасибо за ваши комментарии и пример, которые заставили меня выяснить причину этой проблемы:

Имущество continueOnError. Это поведение разработано и не является ошибкой. В настоящее время нет способа исправить это.

Если мы установим continueOnError: true, то будущие задания будут выполняться, даже если это задание не выполнится. Чтобы достичь этого, Azure Devops будет использовать «обманчивый способ» , чтобы рассматривать ошибку как предупреждение, чтобы ошибка не помешала построению. Вот причина, по которой задание не удалось, но конвейер показывает это как предупреждение.

Мы могли бы просто воспроизвести эту проблему с помощью параметров управления Continue on error в задаче, отличной от YAML:

enter image description here

enter image description here

Кроме того, это не влияет на завершение PR.

Решить этот вопрос , вы можете прокомментировать его в YAML. Если вам это необходимо, вы можете установить condition: always() для будущих заданий:

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

  steps:
   ...

- job: Second
  condition: always()

- job: Third
  condition: always()

Надеюсь, это поможет.

...