Azure Конвейеры: не запускайте новые задания, если какое-либо задание не удалось - PullRequest
0 голосов
/ 12 июля 2020

У меня есть файл azure-pipelines.yml с множеством заданий. В файле azure-pipelines.yml нет dependsOn:, поэтому задания могут выполняться параллельно.

Если какое-либо задание не удается, я бы хотел, чтобы Azure не запускал какие-либо задания в очереди. Я не хочу отменять какие-либо выполняющиеся задания или отменять весь конвейер.

Я не вижу способа сделать это с помощью условия , но, возможно, я что-то упускаю. Другая возможность - создать для каждого задания файл артефакта конвейера , указывающий его успешное или неудачное состояние, а затем каждое задание будет проверять, не завершилось ли какое-либо другое задание неудачным. Похоже, это требует начала работы, и я бы предпочел, чтобы она вообще не начиналась.

Не могли бы вы предложить способ достижения моей цели?

1 Ответ

0 голосов
/ 13 июля 2020

Если вы хотите запускать задания параллельно (без зависимостей), это не может использовать условие. Если вы хотите проверить статус других заданий, потребуется запустить задание. Возможно, вы можете добавить задачу PowerShell, которая отменяет конвейер при сбое задачи, как в этом случае упоминается:

steps:
- powershell: |
   Write-Host "Cancel all jobs..."
   $url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build/builds/$($env:BUILD_BUILDID)?api-version=2.0"
    $header = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"  }
    $body = @{ 'status'='Cancelling' } | ConvertTo-Json
    Invoke-RestMethod -Uri $url -Method Patch -Body $body -Headers $header -ContentType application/json
  displayName: Cancel the pipeline
  condition: failed()
  env:
       System_AccessToken: $(System.AccessToken)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...