はじめに
これはVisual Studio Team Servicesアドベントカレンダー9日目の記事です。今日はLogic Flowを使ったアプリケーションからVSTSのビルドを呼び出し、Teamsと連携してみます。
現在、VSTSとTeamsを統合するにはVSTSがAzure ADの認証を使っている必要があります。MSアカウント認証を使っているVSTSではTeamsにビルド結果の通知とかできません。
ただ、Logic Appを使えばその問題も解決します。もちろんFlowでもかまわないはずです。
Logic Appを作る
AzureポータルからLogic Appを作ります。
Logic AppのコネクターにはVisual Studio Team Servicesがあるので、追加します。"Queue a new build 2(プレビュー)"で指定したプロジェクトのビルド定義の指定ができます。
ビルドが投入されたらOffice 365のTeamsにメッセージをポストしてみましょう。
VSTSのWeb hookを設定
プロジェクト管理(歯車アイコン)のService Hooksから追加します。ServicesからWeb Hooksを選択します。
TriggerでCode pushedを選択します。もちろんpull requestとかのトリガーでも構いません。チームプロジェクト名、ブランチ、プッシュしたグループなどを設定します。
次に設定したトリガーの条件が満たされたときに実行する処理を設定します。ここでLogic Appsで作られたURLを指定します。このURLを知っていれば誰でも(VSTS外からでも)実行できてしまうので、URLの漏洩には気を付けてください。
このURLはAzureポータルで自動的に作成されるこの部分になります。
ここで表示されているURLをそのままコピーしてください。
このように登録されます。
実行してみる
実行されるかどうか、コードを編集してpushします。
Teamsにもメッセージが投稿されました。
VSTSのWeb Hooksが動いた時間も記録されます。
まとめ
VSTSのWeb Hooksを使ってほかのシステムと連携できるのは便利ですね。VSTSには以前Roomという機能があったのですが、外部のツールのほうが便利なので、こういう機能を使って連携する道を選んだようです。
今回はビルド結果の通知だけでしたが、ビルド完了をイベントにすればVSTSでサポートされていない成果物(artifact)をOneDriveにコピーすることも可能です。
Web Hook以外にも便利なものが使えるので、探してみてください。