我正在使用Visual Studio Team Services(VSTS),以前稱爲Visual Studio Online(VSO)來構建Continuous Delivery管道。我的目標是儘可能地追蹤Jez Humble和David Farley的書Continuous Delivery。在VSTS中發佈失敗時向所有開發人員發送通知(prev。VSO)
我想,當一個階段(VSTS中指定的環境)發生故障,通知(電子郵件)發送到每一個參與此版本開發商。該通知會說兩種:
- 你打破了舞臺(迴歸)
- 舞臺已經損壞(失敗)
- 你固定的階段。 (固定)
目前,只有手動創建發佈的人員(或通過推送觸發構建的發佈以及發佈後的發佈)纔會收到此電子郵件,並且沒有我想要的信息。
我已經打了VSTS API一點點,可以得到一個特定的build相關的提交(和開發者的電子郵件)(而不是一個給定版本):
$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將進行開發。比較這兩個版本是沒有意義的。
我知道我可以從環境變量的發佈階段獲取構建標識,然後使用上面的腳本創建PowerShell任務或插入VSTS的Webservice。但是它只會在每個版本觸發一個版本時纔有效,事實並非總是如此。
您是否知道使用VSTS發送此通知的更好方法?
我是否使用正確的工具來處理這類事情?
希望有一天我們會看到在Catlight中實施的發佈監控。它做了一個很好的工作,提醒團隊關於VSTS構建狀態,但是發佈跟蹤不存在 - http://catlight.helprace.com/i17-add-support-to-release-status – alex