Я использую Visual Studio Team Services (VSTS), ранее известный как Visual Studio Online (VSO), для построения конвейера непрерывной доставки. Моя цель - следовать как можно ближе к книге Continuous Delivery от Jez Humble и David Farley.Отправлять уведомление всем разработчикам, когда сбой в VSTS (предыдущий VSO)
Я бы хотел, чтобы при сцене (с именем Environment in VSTS) уведомление (электронное письмо) отправлено всем разработчикам, участвующим в этом выпуске. Это уведомление будет говорить либо:
- Вы нарушили этап (регрессия)
- Сцена была уже сломана (Failed)
- Вы исправили сцену. (Фиксированный)
В настоящее время только электронное письмо, которое создало выпуск вручную (или нажав на фиксацию, вызвавшую сборку и после этого выпуска), получит это письмо и без необходимой информации.
Я играл немного с VSTS API, и могу получить связанные фиксации (и разработчик электронной почты) для данной сборки (но не для данного выпуска):
$token = "vsts token"
$endpoint = "https://acme.visualstudio.com/DefaultCollection/MyProject/_apis/build/builds/42/changes?api-version=2.0"
$b64creds = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($token):a"))
$changes = Invoke-RestMethod -Headers @{Authorization="Basic $b64creds"} $endpoint
$changes.value | ForEach-Object { $_.author.uniqueName }
Я видно, что в интерфейсе VSTS вы можете видеть, какие коммиты были добавлены между двумя релизами. Это очень близко к тому, что я хочу, даже если я не нашел эту информацию в API. Но даже с этой информацией для всех ветвей моего проекта используется одно и то же определение выпуска, так что, например, Release-26 станет подразделением функций и Release-27. Нет смысла сравнивать эти 2 выпуска.
Я знаю, что я могу получить идентификатор сборки в стадии выпуска из переменной окружения, а затем использовать мой сценарий выше и создать задачу PowerShell или Webservice, подключенную к VSTS. Но это будет работать, только если релиз запускается для каждой сборки, что не всегда так.
Вы знаете (лучший) способ отправки этих уведомлений с помощью VSTS?
И я использую подходящий инструмент для таких вещей?
Надеюсь, в один прекрасный день мы увидим мониторинг выпуска, реализованный в Catlight. Это очень хорошая работа, предупреждающая команду о статусе сборки VSTS, но отслеживания выпуска не существует - http://catlight.helprace.com/i17-add-support-to-release-status – alex