Как остановить выпуск-конвейер Azure-Devops от сбоя - PullRequest
0 голосов
/ 10 октября 2018

У меня есть релиз-конвейер, который развертывает сборки.Он запускается после завершения сборки.Сборки имеют BuildNumber, который включает номер версии продукта.Я хочу развернуть только нулевые сборки с номером версии, оканчивающимся на .0

. Я попытался добавить этап с задачей Powershell, которая проверяет номер версии и завершается неудачно, если это не нулевая сборка.Я также попытался добавить шлюз на этапе развертывания, который также проверяет номер версии.

Оба эти способа проверки приводят к сбою конвейера выпуска, и я получаю электронное письмо, сообщающее, что оно не удалось.

Как я могу сделать так, чтобы выпуск-конвейер был успешным, но ничего не делал для ненулевых сборок?

PowerShell был:

if ( "$(Release.Artifacts._TheBuild.BuildNumber)" -like ".0 " )
{
    exit 0
}
else
{
    exit 1
}

Gate вызывает функцию Azureи передает $ (Release.Artifacts._TheBuild.BuildNumber) в качестве аргумента.Функция azure возвращает json со статусом true или false в зависимости от того, заканчивается ли номер версии нулем.Ворота оценивают это немедленно, имеют минимальные повторные попытки и время ожидания 5 и 6 минут соответственно.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Это можно сделать с помощью Custom Condition в control option (для каждой задачи это будет доступно).

Этого можно добиться, определив конкретные условия для запуска конкретной задачи.

В вашем случае вы хотите запускать задачу, если у вас номер версии 0.Таким образом, вы просто определяете custom conditions в control Options для конкретного кода, например

and(succeeded(), eq(variables['Release.Artifacts._TheBuild.BuildNumber'], '0'))

enter image description here

Таким образом, это задание будет выполняться только тогда, когда условие будет выполнено, иначе задание будет пропущено.

0 голосов
/ 10 октября 2018

Если я правильно понял, вам нужно только развернуть сборки с номером версии, оканчивающимся на .0

. Вы можете попробовать добавить конвейер выпуска Trigger Continuous Deployment Trigger и добавить фильтр ветвления , который ищет только номер версии с помощью тега .

. Для этого сначала перейдите к выпуску, который хотите изменить, нажмите ... многоточие рядом с выпускомимя и нажмите кнопку Изменить.

Это должно привести вас к представлению конвейера выпуска.Оказавшись здесь, нажмите на маленький значок молнии, чтобы открыть редактор запуска непрерывного развертывания:

Azure DevOps - Editing the Continuous Deployment Trigger on a Release Pipeline

Это откроет редактор с правой стороны.Здесь вы увидите место для редактирования фильтров веток Build.Нажмите кнопку + Добавить, чтобы добавить ее.

Появится новая строка для настройки фильтра.Именно здесь, я полагаю, вы можете отфильтровать номер вашей версии с помощью тега сборки.

Azure DevOps - Adding a Build branch filter to a continuous deplyment trigger

Очевидно, вам также придется отредактировать свой конвейер сборки, чтобы добавить этот тег, чтобы можно было отфильтровать его здесь, в выпуске.

Вы бы добавили этот тег во входные теги Build.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...