#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
}