(追記:この記事の改訂版→ Azure と GitHub で継続的デプロイ (2017) )
以前に Azure と Visual Studio Online で継続的インテグレーションというエントリを書きましたが、
今回はバージョン管理システムとして GitHub を利用した場合の
Azure での継続的インテグレーション (Continuous Integration, CI) について記述します。
■ リポジトリを作成する
まず、GitHub でリポジトリを作成します。
下の図ではプライベート リポジトリを作成していますが、
パブリック リポジトリでもプライベート リポジトリでも以降の手順は同じです。
■ Azure Web サイトを作成する
Microsoft Azure の管理ポータルで、新規の Web サイトを、[カスタム作成] を選択して作成します。
[ソース管理から発行] をオンにします。
[GitHub] を選択します。
GitHub の承認が完了したら、[リポジトリ名] を選択します。
[リポジトリ名] の選択肢には、プライベート リポジトリも同じように含まれます。
Web サイトの作成が完了すると、現在のリポジトリの内容がデプロイされます。
まだ Web アプリケーションのソースコードが含まれていないため、Web サイトはこのような表示になります。
GitHub のリポジトリの [Settings] で、Azure と連携していることが確認できます。
■ Web アプリケーションをコミットする
ASP.NET MVC で Web アプリケーションを作成して、GitHub に commit/push します。
bin フォルダーを含める必要はありません。
commit/push が完了すると、自動で Web アプリケーションのデプロイが開始します。
デプロイが完了しました。
以降も、ソースコードを変更して GitHub に commit/push するだけで、自動的にデプロイされます。
■ デプロイの仕組み
今回の手順では、Visual Studio Online の場合とは異なり、ビルドのタスクを設定していません。
Azure Web サイトの内部では Kudu というツールが動作しており、
GitHub や Dropbox と連携している場合にデプロイが開始されると、
ソースコードを取得し、ビルドを実行して、Web サイトにコピーする、という一連のタスクを実施します。
Kudu には管理サイトがあります。
Kudu の管理サイトにアクセスするには、まず Web サイトのダッシュボードで [デプロイ資格情報] を設定します。
Kudu の管理サイトは、
https://site-name.scm.azurewebsites.net/
のように、サイト名のあとに「scm」を追加すればアクセスできます。表示されない場合は、
https://site-name.scm.azurewebsites.net/deploy
も試してみてください。
Kudu の管理サイトでは、エクスプローラーのようにファイルにアクセスできます。
また、Web サイトの [デプロイ] ページでも、デプロイのログを見ることができます。
これらから判断すると、デプロイ時には差分のファイルのみを取得してビルドし、
ビルド結果の差分のファイルのみを Web サイトにコピーしているように見えます。
したがって Immutable Infrastructure ではなく、変更点が少なければデプロイが速く完了します。
前回: Azure と Visual Studio Online で継続的インテグレーション
次回: Azure Web サイトに Dropbox からデプロイ

2014年4月15日 00:39
[…] Azure と GitHub で継続的インテグレーションについて書きましたが、 今回はソースコードを格納するストレージとして […]
2015年4月16日 21:05
[…] 参照 Visual Studio Online と Git を使用した Azure への継続的な配信 Windows Azure と Visual Studio Online で継続的インテグレーション (1) Azure と GitHub で継続的インテグレーション […]
2016年1月4日 23:10
[…] これまでは主に、Visual Studio Team Services との CI や GitHub との CI など、 […]
2017年12月30日 20:30
[…] Azure と GitHub で継続的インテグレーションや Azure と Visual Studio Online (Git) […]
2017年12月31日 05:12
[…] Azure と GitHub で継続的インテグレーションや Azure と Visual Studio Online (Git) […]