Azure と GitHub で継続的インテグレーション

以前に Azure と Visual Studio Online で継続的インテグレーションというエントリを書きましたが、
今回はバージョン管理システムとして GitHub を利用した場合の
Azure での継続的インテグレーション (Continuous Integration, CI) について記述します。

 

■ リポジトリを作成する

まず、GitHub でリポジトリを作成します。
下の図ではプライベート リポジトリを作成していますが、
パブリック リポジトリでもプライベート リポジトリでも以降の手順は同じです。

image

 

■ Azure Web サイトを作成する

Microsoft Azure の管理ポータルで、新規の Web サイトを、[カスタム作成] を選択して作成します。
[ソース管理から発行] をオンにします。

image

[GitHub] を選択します。

image

GitHub の承認が完了したら、[リポジトリ名] を選択します。
[リポジトリ名] の選択肢には、プライベート リポジトリも同じように含まれます。

image

 

Web サイトの作成が完了すると、現在のリポジトリの内容がデプロイされます。

image

まだ Web アプリケーションのソースコードが含まれていないため、Web サイトはこのような表示になります。

image

GitHub のリポジトリの [Settings] で、Azure と連携していることが確認できます。

image

 

■ Web アプリケーションをコミットする

ASP.NET MVC で Web アプリケーションを作成して、GitHub に commit/push します。
bin フォルダーを含める必要はありません。
commit/push が完了すると、自動で Web アプリケーションのデプロイが開始します。

image

デプロイが完了しました。

image

以降も、ソースコードを変更して GitHub に commit/push するだけで、自動的にデプロイされます。

image

 

■ デプロイの仕組み

今回の手順では、Visual Studio Online の場合とは異なり、ビルドのタスクを設定していません。

Azure Web サイトの内部では Kudu というツールが動作しており、
GitHub や Dropbox と連携している場合にデプロイが開始されると、
ソースコードを取得し、ビルドを実行して、Web サイトにコピーする、という一連のタスクを実施します。

Kudu には管理サイトがあります。
Kudu の管理サイトにアクセスするには、まず Web サイトのダッシュボードで [デプロイ資格情報] を設定します。

image

Kudu の管理サイトは、

https://site-name.scm.azurewebsites.net/

のように、サイト名のあとに「scm」を追加すればアクセスできます。表示されない場合は、

https://site-name.scm.azurewebsites.net/deploy

も試してみてください。

Kudu の管理サイトでは、エクスプローラーのようにファイルにアクセスできます。

image

また、Web サイトの [デプロイ] ページでも、デプロイのログを見ることができます。

image

これらから判断すると、デプロイ時には差分のファイルのみを取得してビルドし、
ビルド結果の差分のファイルのみを Web サイトにコピーしているように見えます。
したがって Immutable Infrastructure ではなく、変更点が少なければデプロイが速く完了します。

前回: Azure と Visual Studio Online で継続的インテグレーション
次回: Azure Web サイトに Dropbox からデプロイ

参照
Kudu (GitHub)

カテゴリー: ALM, クラウド. タグ: , . 3 Comments »

コメント / トラックバック3件 to “Azure と GitHub で継続的インテグレーション”

  1. Azure Web サイトに Dropbox からデプロイ | Do Design Space Says:

    […] Azure と GitHub で継続的インテグレーションについて書きましたが、 今回はソースコードを格納するストレージとして […]

  2. Azure と Visual Studio Online (Git) で継続的インテグレーション | Do Design Space Says:

    […] 参照 Visual Studio Online と Git を使用した Azure への継続的な配信 Windows Azure と Visual Studio Online で継続的インテグレーション (1) Azure と GitHub で継続的インテグレーション […]

  3. Azure Web App に FTP でデプロイする | Do Design Space Says:

    […] これまでは主に、Visual Studio Team Services との CI や GitHub との CI など、 […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。