Bot Framework と Microsoft Graph で DevOps その 5 : VSTS で Continuous Integration

※2017/6/10 ファイルコピータスクの追加手順を忘れていたので追加。これないとファンクションテスト動きません。。。

前回は依存サービスをモック化しました。今回は VSTS で CI (Continuous Integration) を設定します。

とりあえずコードチェックインの確認

1. VSTS にログインして、今回用のプロジェクトを開きます。Visual Studio のチームエクスプローラーからも、ワンクリックで移動できます。

image

2. Code 項目でこれまでのコードがチェックインされていることを確認。

image

ビルド定義の作成とテスト実行

コードをチェックインするたびに、コンパイルしてテストを実行できるように、ビルド定義を作ります。

1. Build & Release タブより Builds を選択。「New definition」をクリック。

image

2. テンプレートより ASP.NET を選択。

image

3. 名前を適当に変更。

image

4. Get sources 項目から、正しいソースが選択されているか確認。ソース管理に GitHub 等も使えます。

image

5. Test Assemblies を選択し、Test assemblies の項目を変更。今回のユニットテストのライブラリは O365Bot.UnitTests.dll なので合わせました。

image

6. その他のオプションも必要に応じて変更。ここではコードカバレッジをチェック。

image

7. Add Task をクリック。

8. Copy Files タスクを追加。

9. 以下のように設定し、ビルド結果を一時フォルダのコピー。

10. タスクの順番をPublish Artifact の上に移動。

11. Triggers タブを選択して、Continuous Integration を有効に。これだけで CI! 簡単~

image

12. Options タブをクリックして、Agent から Hosted VS2017 を選択。
※ Hosted Agent が持っているコンポーネントはこちら

image

13. Create work item on failure を有効に。これでビルド失敗するとワークアイテム作成されます。

image

14. Save & queue をクリックして、保存しつつビルドをキューイング。

image

15. 実行の様子が画面に出るので観察。これ面白いです。

image

以上でビルド定義の作成完了。

チェックインから試してみる

折角なので、Visual Studio からも試してみましょう。

1. 適当にコード変更して、同期。

2. VSTS の Builds タブにて新しいビルドがキューされることを確認。

image

3. ビルド番号 (#20170513.2) をクリックして詳細確認。テストの結果やコードカバレッジが出力されているほか、ビルドしたソースバージョンへのリンクもすべて含まれています。

image

image

まとめ

CI ってすごく簡単ですが、肝はやはりテストをしっかり実装できるかです。次回はファンクションテストについて説明します。Bot Builder の詳細に踏み込める日はまだ先か。