kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Visual Studio Team Services CI/CDアドベントカレンダー:Logic Appでビルド通知(9日目)

はじめに

qiita.com

これはVisual Studio Team Servicesアドベントカレンダー9日目の記事です。今日はLogic Flowを使ったアプリケーションからVSTSのビルドを呼び出し、Teamsと連携してみます。

現在、VSTSとTeamsを統合するにはVSTSがAzure ADの認証を使っている必要があります。MSアカウント認証を使っているVSTSではTeamsにビルド結果の通知とかできません。

ただ、Logic Appを使えばその問題も解決します。もちろんFlowでもかまわないはずです。

Logic Appを作る

f:id:kkamegawa:20171209221702p:plain

AzureポータルからLogic Appを作ります。

f:id:kkamegawa:20171209221654p:plain

Logic AppのコネクターにはVisual Studio Team Servicesがあるので、追加します。"Queue a new build 2(プレビュー)"で指定したプロジェクトのビルド定義の指定ができます。

ビルドが投入されたらOffice 365のTeamsにメッセージをポストしてみましょう。

VSTSのWeb hookを設定

プロジェクト管理(歯車アイコン)のService Hooksから追加します。ServicesからWeb Hooksを選択します。

f:id:kkamegawa:20171209221655p:plain

TriggerでCode pushedを選択します。もちろんpull requestとかのトリガーでも構いません。チームプロジェクト名、ブランチ、プッシュしたグループなどを設定します。

f:id:kkamegawa:20171209221656p:plain

次に設定したトリガーの条件が満たされたときに実行する処理を設定します。ここでLogic Appsで作られたURLを指定します。このURLを知っていれば誰でも(VSTS外からでも)実行できてしまうので、URLの漏洩には気を付けてください。

このURLはAzureポータルで自動的に作成されるこの部分になります。

f:id:kkamegawa:20171209221657p:plain

ここで表示されているURLをそのままコピーしてください。

f:id:kkamegawa:20171209221658p:plain

このように登録されます。

実行してみる

f:id:kkamegawa:20171209221700p:plain

実行されるかどうか、コードを編集してpushします。

f:id:kkamegawa:20171209221659p:plain

Teamsにもメッセージが投稿されました。

f:id:kkamegawa:20171209221701p:plain

VSTSのWeb Hooksが動いた時間も記録されます。

まとめ

VSTSのWeb Hooksを使ってほかのシステムと連携できるのは便利ですね。VSTSには以前Roomという機能があったのですが、外部のツールのほうが便利なので、こういう機能を使って連携する道を選んだようです。

今回はビルド結果の通知だけでしたが、ビルド完了をイベントにすればVSTSでサポートされていない成果物(artifact)をOneDriveにコピーすることも可能です。

Web Hook以外にも便利なものが使えるので、探してみてください。