Bot Builder v4 : DevOps ビルドパイプラインの作成

継続的に機能や品質を向上させるため、DevOps は非常に重要です。ここでは Azure DevOps を使って開発したボット用にビルドパイプラインを作ってみます。

# Azure DevOps

Azure DevOps は Microsoft が提供する、DevOps のためのオールインワンソリューションです。説明を始めると別のシリーズが出来てしまうので、ここでは既に Azure DevOps を使っているものとします。

## Azure DevOps 組織とプロジェクトの作成

1\. https://dev.azure.com にサインイン。画面左下の「＋ New organization」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/e9a6a836-1cc6-856f-4a42-0a4965dff433.png)

2\. 適当に名前を付けて組織を作成。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/c88e9e93-1f45-9934-7d7e-8e818b28b6b5.png)

3\. 初期プロジェクト作成画面が出るので、任意の名前を設定。プロジェクトの種類については「 [What is a public project?](https://docs.microsoft.com/ja-jp/azure/devops/organizations/public/about-public-projects?view=azure-devops)」参照。ここでは以下の様な設定にして作成。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/6defe4de-559f-bfaf-c491-ba26350e9233.png)

# コードの修正

今回 DevOps のビルドパイプラインを作る前に、以下のコードの問題を修正しました。

- 日本語を含んだファイルを UTF8 で保存し直し
- csproj に ```<LangVersion>latest</LangVersion>``` を追加 <br> 
https://stackoverflow.com/questions/47946732/c-sharp-7-1-cant-be-published
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/4f0591c8-ae07-4cc4-2815-6a37b0611beb.png)

DevOps-article1 ブランチとして保存。

# ビルドパイプライン

BotBuilder SDK を使って開発したアプリは実質 WebAPI であるため、既定のテンプレートでパイプラインが作れます。Azure DevOps のビルドパイプラインはソースが Azure DevOps 内にある必要はなく、GitHub など外部サービスでも構成できます。

1\. Pipelines より Build をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/a39a31ff-6a60-ec5c-74c5-d7b78a646293.png)

2\.「New pipeline」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/9f7e9ca0-4880-b18c-1ad2-f0f3741064bc.png)

3\. GUI を使った構成がしたいため「Use the classic editor」リンクをクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/dab09fe4-ffd1-ba24-a7ec-eda7b382d960.png)

4\. ソース選択でボットのコードをホストしている場所を選択。ここでは GitHub を選択。その後認証をウィザードに従って完了。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/7535d727-9892-37a3-326c-f79389adb7c9.png)

5\. ソースがあるレポジトリとブランチを選択し「Continue」をクリック。
※本来は master など運用に沿って適切なブランチを指定。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/ee097104-fbd9-1380-1e62-9d03dac5e25f.png)

6\. テンプレート選択画面で「core」で検索。ASP.NET Core テンプレートで「Apply」をクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/aa589653-0ff8-402a-a14e-cb555ffb66fe.png)

7\. ソリューションファイル名を環境に合わせて調整。ここでは以下の様に選択。

- エージェントで「VS2019」
- プロジェクトファイル名のパス編集
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/27ad1233-68df-f65b-bf69-c51cffdb8bab.png)

8\. アプリは Web.Config を持っていないため「Publish」タスクを選択して、「Publish Web Projects」のチェックを外す。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/3f51f2e3-dc63-cb42-d084-fc316a5e2db4.png)

9\.「Save & queue」より保存してキューを実行。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/8f44b5e2-b233-5402-d7a4-f4babe5a27e8.png)

10\. 画面上部にビルドへのリンクがでるのでクリック。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/173884d8-8507-7eaa-e26f-899e08c409f8.png)

11\. 全てのタスクが完了していることを確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/3d726381-35b9-34ac-4b43-7743f5b42e61.png)

12\. Tests タブでテスト結果を確認。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/214116/b926e3fb-91da-4a31-7953-1ad5d72e1485.png)

# まとめ

今回は、まずビルドパイプラインを作りました。次回はリリース先となる Azure リソースを作ります。

[次の記事へ](https://qiita.com/kenakamu/items/e9517f182c0283bd8343)
[目次に戻る](https://qiita.com/kenakamu/items/6dc043cfc1f199032883)

[この記事のサンプルコード](https://github.com/kenakamu/botbuilderv4completeguide/tree/devops-article1)