Запуск конвейера CI с CD - PullRequest
       37

Запуск конвейера CI с CD

0 голосов
/ 28 апреля 2020

В CI у меня есть проект, который содержит интеграционные тесты множества различных сервисов приложений, которые уже развернуты. Я хочу автоматически запустить этот конвейер CI после развертывания службы приложений на CD.

Тем не менее, я не вижу никакой опции с CD для запуска конвейера CI. Есть ли способ сделать это без использования расширения?

1 Ответ

0 голосов
/ 29 апреля 2020

Тем не менее, я не вижу никакой опции с CD для запуска конвейера CI. Есть ли способ сделать это без использования расширения?

Для вашего исходного вопроса Is there a way to do this without extension: Ответ Да .

Вы можете позвонить Azure Devops Rest API для постановки вашего конвейера сборки в задачу Powershell . Queue-build - это система, предназначенная для постановки в очередь конвейера сборки.

Мы можем добавить задачу powershell в качестве последней задачи вашего агента по запуску API-интерфейса Queue-build, сценарий будет выглядеть так: например:

$token = "xxx"

$url="https://dev.azure.com/YourOrganizationName/YourProjectName/_apis/build/builds?api-version=5.1"

$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))

$JSON = @'
{
  "definition": {
    "id": BuildId
  } 
}
'@

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

Write-Host "result = $($response | ConvertTo-Json -Depth 100)"

Вы должны заменить YourOrganizationName и YourProjectName на ваши orgName и projectName. Также вам необходимо создать PAT с необходимыми разрешениями и ввести его в $token = "your PAT". И BuildId в вашем $ JSON - это идентификатор вашего конвейера сборки, вы можете легко найти его значение при редактировании вашего конвейера:

enter image description here

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

Выше приведен способ запуска конвейера сборки в конвейере выпуска, но на самом деле это не рекомендуется в большинстве случаев. Мы обычно используем сборку для запуска выпуска вместо запуска сборки с использованием выпуска!

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

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