Azure と Visual Studio Online (Git) で継続的インテグレーション

(追記:この記事の改訂版→ Azure と VSTS で継続的デプロイ (2017) )

以前に Windows Azure と Visual Studio Online で継続的インテグレーションというのを書きましたが、
今回は、リポジトリの種類として TFVC ではなく Git を使ってみます。

Visual Studio Online (Git) に Web アプリケーションのソース コードをコミットすると、
自動的にビルドが開始して Azure Web アプリにデプロイされる、という
継続的インテグレーション (Continuous Integration, CI) を構成するための手順について記述します。

 

■ ソリューションをコミットする

まず、Visual Studio Online で Git のチーム プロジェクトを作成しておきます。
Visual Studio でソリューションのみを作成して、Visual Studio Online にコミット・プッシュします。
ソリューションを作成する手順は後でもかまいませんが、
ここで作成しておくと、ビルド定義にソリューションへのパスが自動で含まれるようになります。

image

 

■ Azure Web アプリを作成する

Microsoft Azure の管理ポータルで、新規の Web アプリを作成します。[カスタム作成] を選択します。

image

作成する Web アプリの URL を入力し、[ソース管理から発行] をオンにします。

image

ソースコードのリポジトリの種類を指定します。
[Visual Studio Online] を選択します。

image

Visual Studio Online の URL を指定します。
[今すぐ承認] をクリックすると Visual Studio Online 側の承認画面が表示されるので、[Accept] をクリックします。

image

リポジトリ名 (チーム プロジェクト名) を選択して、右下の ✓ をクリックすれば Web アプリが作成されます。

image

このとき同時に、Visual Studio Online にビルド定義が作成されます。
なお、ソース管理システムと連携されていない Web アプリにあとから連携を追加することもできます。

 

■ ビルド定義を編集する

Visual Studio で、先ほど作成されたビルド定義を編集します。
既定では、ビルド定義は「(サイト名)_CD」という名前で作成されています。
この名前を変更しても、デプロイ構成には影響ありません。

image

[全般] の [キューの処理] が [有効] に設定されていることを確認します。

image

ビルドのトリガーは、既定で [継続的インテグレーション] に設定されています。
この設定のときでも、ビルドのメニューから手動で開始することもできます。

image

ソースの場所は、分岐まで指定できます。
本番用 (Production) とテスト用 (Staging) の環境を用意したい場合は、
それぞれの Azure Web アプリを作成し、それぞれを master と開発用の分岐に関連付けるなどするとよいでしょう。

image

ビルドの出力場所は既定で [ビルド出力をサーバーにコピーする] に設定されています。

image

ターゲットのソリューションまたはプロジェクトを [2. Build] – [Projects] で指定します。
Release ビルドにするには、[2. Build] – [Configurations] で、Release 用の構成を追加します。

image

なお、ビルド定義と Azure Web アプリは、[Windows Azure Deployment Environment] の値で関連付けられています。

image

 

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

Web アプリケーションを作成します。
ここでは例として、[ASP.NET Web アプリケーション] を選択し、テンプレートから [MVC] を選択します。

image

これらのファイルを Visual Studio Online にコミット・プッシュします。
すると、ビルドが自動的に開始され、Azure Web アプリに初回のビルドがデプロイされます。

Visual Studio Online での表示:

image

Azure Web アプリでの表示:

image

 

ビルドおよびデプロイに成功すると、Web アプリが実行されるようになります。

image

ビルド定義で [ビルド出力をサーバーにコピーする] に設定されている場合、
ビルドの実行ログの [Download drop as zip] でデプロイされたビルド一式を取得できます。

image

Monaco で配置フォルダーを覗いてみると、BuildInfo.config というファイルが作成されています。
これにより、現在デプロイされているビルドの情報を確認することができます。

image

 

以上で、継続的インテグレーションが構成されました。
その後も、ソース コードをコミットするたびに自動的にビルドおよびデプロイが実施されます。

過去のバージョンを選択して再デプロイすることもできます。

image

 

バージョン情報
Visual Studio 2013

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

広告

Git にコマンドラインでチェックインする

例えば GitHub の場合、GUI ツールである GitHub for Windows を使えば、
直感的な操作でリポジトリを管理することができます。

GitHub for Windows

 

基本的にはこのような GUI ツールを利用するのがよいと思いますが、
それでもやはり、チェックインの頻度が高くなるほどバッチなどをあらかじめ作っておいたほうが楽になるでしょう。
以下では、コマンドラインで Git リポジトリを操作する方法について記述します。

 

■ ローカル キャッシュ フォルダーを作成する

まず初期準備として、新規に作成したリポジトリや既存のリポジトリに対して、
ローカル キャッシュ (作業用のフォルダー) を作成するためのコマンドです。
これにより、リポジトリの最新のファイルもダウンロードされます。

git clone https://github.com/sakapon/Sample01 Sample01

最後の引数には、ローカル キャッシュとして使うディレクトリのパスを指定します。
上の例では、現在のディレクトリからの相対パスを指定しています。

 

■ ファイルのチェックイン (プッシュ)

ローカルのファイルを変更した後、次のコマンドを実行すればすべてのファイルをリポジトリにチェックインできます。

cd Sample01
git add –all .
git commit -m "This is comment."
git push -u origin master

最初の行では、ローカル キャッシュに移動しています。
git add コマンドで「–all」を指定することにより、ファイルの追加・更新だけでなく、削除も対象になります。
最後の「.」はすべてのフォルダー・ファイルを対象とすることを表します。

また Git では、コミットとプッシュの 2 段階の概念に分割されていますが、上の例ではまとめて実行しています。

 

なお、CodePlex の Git に対しても上記と同様の方法を使用できました。

参照
Git ユーザマニュアル (バージョン 1.5.3 以降用)
Gitコマンドリファレンス

カテゴリー: ALM, ツール. タグ: . Leave a Comment »