検索
連載

第4回 TFVCとGitのデプロイ、ビルド、テスト連載:TFVC vs Git(5/8 ページ)

今回はVisual Studio Onlineの新しいビルドシステムを使って、ソースコードをコミットしてからビルド/テスト/デプロイまでを自動的に行う方法を見る。連載完結。

Share
Tweet
LINE
Hatena

デプロイタスクの追加

 上述した通り、ビルド定義の作成画面の[Build]タブにある[Add build step]リンクをクリックすると、ビルド定義にビルドステップを追加できる。ここでは、デプロイタスクを追加してみよう。

ビルド定義にデプロイタスクを追加する
ビルド定義にデプロイタスクを追加する
  (1)ビルドテンプレートのカテゴリを選択する。
  (2)選択したカテゴリのテンプレートが表示される(ここではデプロイタスク用のテンプレートが表示されている)。
  (3)選択したテンプレートを使用する。
  (4)画面を閉じる。

 デプロイ用の処理として上の画面に示したテンプレートが用意されている。現時点ではAzureおよび、WinRMを使用してのデプロイ処理が用意されている。用意されていない環境へのデプロイを行う場合は左側のペーンで[Utility]を選択したときに表示される内のシェルやバッチファイルを実行して、デプロイを実施する必要がある。ここではAzure Web Apps(旧Azure Websites)へのデプロイ処理を組み込んでみよう。

 左側のペーンで[Deploy]を選択し、右側に表示されたテンプレートの中から[Azure Web App Deployment]の右側にある[Add]ボタンをクリックして、最後に[Close]ボタンをクリックするとビルドステップにデプロイ処理が追加される。これにより、ビルドステップの一覧に赤い字で[Azure Web App Deployment]というステップが追加される。

Azure Web Appへのデプロイを行うタスクを追加したところ
Azure Web Appへのデプロイを行うタスクを追加したところ
  (1)ビルドステップを追加する。
  (2)登録済みAzureサブスクリプションを選択する。
  (3)Azureサブスクリプションを再読み込みする。
  (4)Azureサブスクリプションを管理する画面を表示する。
  (5)Webアプリケーションの名前を指定する。
  (6)Webアプリケーションを展開するリージョンを選択する。
  (7)展開スロットを指定する(無料プランでは使用できない)。
  (8)デプロイ用パッケージ名を指定する。
  (9)アプリケーション展開時の引数があれば追加する。
  (10)このビルドステップを有効にするかどうか。
  (11)エラーが発生しても継続するか。
  (12)常時実行するか。

 ビルドステップを追加すると、既定では最後に追加される。この場合はデプロイ処理なので最後で問題ないが、処理の順番を入れ替えたい場合には、ドラッグ&ドロップで自由に順番を変更できる。デプロイは最後で問題ないので、このまま追加する。

 前述の[MSBuild Arguments]欄にmsbuildコマンドへ渡すコマンドラインオプションを指定した場合、パッケージ名はプロジェクト名がそのまま使用されるので、[Web Deploy Package]欄には以下のように指定する。

$(build.stagingDirectory)\WebApplication.zip (プロジェクト名がWebApplicationであるため)


[Web Deploy Package]に指定するパッケージ名
実際のパッケージ名はプロジェクト名に合わせたものに変更すること。

Azureへのデプロイ資格情報登録

 Azureへのデプロイに必要な資格情報はAzureのサイトから入手できる拡張子「.publishsettings」のファイルの情報を使用する(後述)。まずはこれをダウンロードしておこう。

 次に、VS Onlineの右上にある歯車アイコンをクリックして、[Services]タブをクリックする。あるいは上記の画面の(4)に示した[Manage]ボタンをクリックすると、この画面が直接表示される。

接続サービスの追加画面
接続サービスの追加画面
  (1)展開用サービスへの接続を追加する。
  (2)登録されているサービス。
  (3)登録済みサービス一覧。

 緑の十字アイコンをクリックすると、使用するサービスが選択可能だ。Azure以外にもChefや、Web API、GitHubといった外部サイトのパスワードもしくはトークンを使用して認証する発行が可能だ。

 例として、先ほどダウンロードしたAzureの発行プロファイルを使用したデプロイタスクの登録を紹介する。選択肢の中から[Azure]をクリックすると、次の画面が表示される。

Azure Subscriptionを追加
Azure Subscriptionを追加
  (1)サブスクリプションIDを「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」の形式で指定する。
  (2)Azureのサブスクリプション名を指定する。
  (3)認証方法を選択する(後述)。
  (4)(3)で[Certificate]を選択した場合はここに先ほどダウンロードした.publishsetteingsファイルのManagementCertificateキーの値を入力する。
  (5)サブスクリプションファイルのダウンロード画面へのリンク。
  (6)認証を行う。
  (7)認証を取りやめる。

 ここで.publishsettingsファイルの内容を使用する。(3)では[Credentials]ラジオボタンを選択してユーザー名とパスワード認証にすることも可能だが、パスワードを保存させることになるため、[Certificate]ラジオボタンを選択することを強く推奨する。必要事項を記入し、認証方法に[Certificate]ラジオボタンを選択して、ManagementCertificateキーの値を入力した後に[OK]ボタンをクリックする。認証が成功すると、次の画面が表示される。

サービス接続の登録後の画面
サービス接続の登録後の画面
  (1)Azureサブスクリプションへの接続。
  (2)Azureサブスクリプション名。編集も可能。
  (3)認証を更新する。
  (4)切断する。

 このような画面が表示されれば、選択したAzureサブスクリプションを使用して、Azureへの発行が可能になる。

 上の手順に従って、接続サービスを設定したら、Webアプリの名前やロケーションなどの必要事項を指定し、最後に[Save]ボタンをクリックしてビルド定義の編集を終了しよう。

ビルドを手動で実行する

 スケジュール、もしくはCIを設定したビルド定義はチェックインもしくはスケジュールに従って実行される。手動で実行するときはビルド定義の作成/編集画面で[Queue Build]ボタンをクリックすればよい。画面上でも、ビルド定義の左端の[▼]ドロップダウンからでも実行可能だ。

手動でビルドを実行する
手動でビルドを実行する
  (1)ビルド結果一覧を見る。
  (2)ビルドを実行する。
  (3)ビルド定義を編集する。
  (4)ビルド定義名を変更する。
  (5)ビルド定義を複製する。
  (6)テンプレートとして保存する。
  (7)ビルドを削除する。
  (8)個人のお気に入りに追加する。
  (9)チームのお気に入りに追加する。
  (10)Webポータルのトップページにピン留めする。
  (11)ビルド定義のセキュリティを設定する。

ビルド定義のテスト

 作成したビルド定義が一度で動けば問題ないが、変更が正しく実行できるとは限らない。変更中にビルドの要求が発生することもある。そのような場合、[Save]ボタンをクリックするとそのままビルド定義が保存されるが、その右側にある[▼]ドロップダウンをクリックすると、[Save as a draft]という項目が表示される。

ビルド定義をドラフトとして保存す
ビルド定義をドラフトとして保存する
  (1)ビルド定義をそのまま保存する。
  (2)ビルド定義をドラフトとして一時保存する。

 [Save as a draft]を選択して、一時保存すると、登録済みのビルド定義とは異なり、ビルド定義名に「draft」という名前が付いた別名で一時保存される。ビルド実行結果も異なるものとして扱われるため、修正前のビルド結果と混在することはない。

一時保存されたたビルド定義
一時保存されたたビルド定義
  (1)一時保存状態のビルドを発行して、上書きする。
  (2)一時保存状態のビルドを実行する。
  (3)作成した一時保存状態のビルド。

 この状態で[Queue build]ボタンをクリックすると、一時保存状態のビルド定義が実行される。名前が異なるので、実行結果が上書きされることもないし、ビルド定義の誤りによりビルドが失敗するとVS Onlineではビルド品質が低下していくが、この場合はビルドが失敗したとしてもビルド品質に影響も与えない。

一時保存されたビルド定義を使ってビルドを行った結果

一時保存されたビルド定義を使ってビルドを行った結果
  (1)ビルド名に「DRAFT」と付いている。
  (2)ビルド結果も別管理で行われる。


 一時保存状態のビルド定義の実行を確認して、問題がなければ、[publish draft]ボタンをクリックすれば、上書き保存される。

テスト結果の参照

 プロジェクトに単体テストが組み込まれており、ビルド時に実行されていれば、テスト結果を参照することも可能だ。

ビルド結果から単体テスト結果を確認する
ビルド結果から単体テスト結果を確認する
  (1)ビルド中に実行された単体テスト結果へのリンク。

 複数の組み合わせのビルドが行われた場合、それぞれについてテスト結果を確認できる。

テスト結果
テスト結果
  (1)概要。
  (2)テスト結果。
  (3)テスト結果の検索フィルター。
  (4)テスト実行したビルド。
  (5)テスト結果ファイル。クリックするとVSで詳細な結果を参照できる。

 テスト結果ページではビルド時に実行された単体テストの実行結果を確認することが可能だ。詳細に確認したい場合、VSで開いて確認することもできる。

Copyright© Digital Advantage Corp. All Rights Reserved.

ページトップに戻る