Запись сбоев конвейера в канал Teams

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

В приведенном ниже примере неудачный запуск конвейера автоматизации отправляет уведомление на канал Automation Teams Channel, который я создал. В уведомлении содержится ссылка на неудачное задание конвейера в Azure DevOps.

Настройка:

1) Выберите или создайте канал Teams Channel для записи сообщений о сбоях. Я рекомендую создать новый выделенный канал для этого, чтобы уменьшить шум от других уведомлений.

2) Выберите меню канала …, затем выберите «Коннекторы».

3) На странице Connectors выберите «Incoming Webhook» и нажмите кнопку Configure.

4) Дайте Webhook имя и выберите кнопку «Создать».

5) Будет создан URL-адрес Webhook. Скопируйте и сохраните этот URL, затем выберите кнопку Done. Вы будете использовать этот URL в yml вашего конвейера.

6) Добавьте шаг в ваш yml-конвейер для записи сбоев теста в канал Teams. Шаг должен запускаться после выполнения теста.

В yml конвейера создайте новую переменную для Url канала команды, используя значение Url, которое вы скопировали выше:

– name: TeamChannelUrl
value: 'https://nuancecommunications.webhook.office.com/webhookb2/2fe27450-5aff-4d80-9061-184ae51d90f2@29208c38-8fc5-4a03-89e2-9b6e8e4b388b/IncomingWebhook/6b8bfe1977214326ab198271cbf5fc93/b50aa873-d730-42b2-b5b2-26xa43abea7d' 
Войти в полноэкранный режим Выйти из полноэкранного режима

После добавления переменной в конвейер yml добавьте новый этап Powershell, который записывает отказы в канал команд. Этот этап должен быть добавлен после выполнения ваших тестов автоматизации (или конвейера).

Ниже приведен необходимый код Powershell, который будет получать информацию о сборке Azure Devops и отправлять ее на канал Teams. Обновите заголовок, чтобы отразить выполненную автоматизацию/конвейер. В примере ниже я передаю параметры test_environment и test_category, которые я использую в конвейере, чтобы определить, что именно не удалось.

– powershell: |
$body = [PSCustomObject][Ordered]@{
"@type"      = "MessageCard"
"@context"   = "http://schema.org/extensions"
"themeColor" = 'd72f00'
"title"      = "HAL Automation Pipeline Failure: Environment: ${{ parameters.test_environment }} Tests: ${{ parameters.test_category }} "
"text"       = "$(Build.DefinitionName)"
}
$body = ConvertTo-Json $body -Depth 100
$uri = "$(TeamChannelUrl)"
Invoke-RestMethod -uri $uri -Method Post -body $body -ContentType 'application/json'
displayName: Send Teams Notification
condition: failed()
Вход в полноэкранный режим Выход из полноэкранного режима

Проверьте изменения в конвейере, запустив его. Если у вас возникли проблемы с генерацией сбоя автоматизации или конвейера, вы можете установить значение условия выше на условие: always( ). Только не забудьте вернуть его обратно в условие: failed( )!

7) Ссылки на сбои трубопровода. Теперь при сбое трубопровода в новой записи канала Teams Channel будет создаваться ссылка на сбойное задание трубопровода. Любой может щелкнуть по ней и увидеть сбой трубопровода. Теперь пора приступать к отладке!

Оцените статью
devanswers.ru
Добавить комментарий