Как запустить выпуск во втором определении выпуска, когда этап проходит в первом определении выпуска в azure devops

#azure-devops

#azure-devops

Вопрос:

У меня есть два определения выпуска release-def-1 и release-def-2 в azure devops. Я хочу запустить выпуск во втором (release-def-2) после успешного развертывания в первом (release-def-1).

Есть ли способ добиться этого?

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

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

Комментарии:

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

Ответ №1:

В качестве обходного пути можно добавить задачу запуска конвейера Azure DevOps в конце задания и задать условия выполнения задачи: Only when all previous tasks have succeeded . Таким образом, при успешном развертывании первого конвейера выпуска автоматически запускается второй конвейер выпуска.

введите описание изображения здесьвведите описание изображения здесь

Ответ №2:

Мы не смогли настроить его в триггере выпуска.

В качестве обходного пути мы могли бы открыть release-def-1, добавить task power shell в конце задания и вызвать REST API для запуска конвейера выпуска (release-def-2).

Сценарий командной оболочки:

 $token = "{PAT}"   
$url = "https://vsrm.dev.azure.com/{Org name}/{Project name}/_apis/Release/releases?api-version=5.0"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))


$JSON = @"
{
  "definitionId": {release-def-2 definition ID}
}
"@

$response = Invoke-RestMethod -Uri $url -Headers @{Authorization = "Basic $token"} -Method Post -ContentType application/json -body $JSON

}