今回はVisual Studio Onlineの新しいビルドシステムを使って、ソースコードをコミットしてからビルド/テスト/デプロイまでを自動的に行う方法を見る。連載完結。
powered by Insider.NET
前回はソースコードの修正ワークフローともいえるブランチの作成、修正、レビューをマージといった一連の流れを解説した。
コードをコミットしたタイミングで自動的にビルド、テスト、デプロイまでが一連の流れで自動的に実施されることにより、開発者は開発作業に集中できるようになる。Visual Studio Online(以下、VS Online)にもこれらの一連の流れを支援する機能が提供されている。今回は自動ビルド、テスト、デプロイ機能について解説を行う。
GitとTFVC(Team Foundation Version Control)のいずれを選択しても自動ビルドを行うことは可能だ。今回は「TFVC vs Git」というタイトルは裏腹にほとんどの要素が両者で共通に適用できる。もちろん、仕組み上、多少異なる点があるので、その点については比較する。
初めにVS Onlineのビルドシステムの強化について紹介しよう。VS Onlineでは開始当初より、XMLを拡張した形式でビルド処理を定義するビルドテンプレートが用意されていた。Visual Studio(以下、VS)でテンプレートを利用してビルド定義を作成、あとは定義をビルドキューに登録するだけでビルドからデプロイまでが実行された。オンプレミス版のTFSだが実施手順はほぼ同じだ。
ビルド定義は用意されているもの以外にも、自身で作ることも可能となっている。このXMLでのビルド定義は細かいことが可能な半面、テンプレートから外れた制御(既存のバッチファイルを呼び出すなど)を行う場合、改造が難しいという問題があった。
この結果、GUIのみで多くの用途をカバーする「新しいビルドシステム」が開発され、「Build.Preview」としてプレビュー提供されていた新しいビルドシステムが2015年5月ごろから正式に使用可能になった。
もちろん従来のビルド(ドキュメントや画面上ではXAMLビルド)も継続して使用可能なので、無理に移行する必要はない。しかし、新しいビルドシステムではXamarin.iOS、Xamarin.Android、Xcodeのビルド以外にもGitHubなどの外部リポジトリのビルド、デプロイ、GulpやGradle、antといった外部ツールの実行もサポートされている。クロスプラットフォームや、外部との連携を考えるならば新しいビルドシステムを試してみてほしい。
具体的な強化点としては以下の点がある。
VS Onlineのビルド機能は60分まで無料で使用可能だ。それ以上は時間に応じて課金が発生し、Azureと一緒にクレジットカードに対して請求が行われる。ただし、記事執筆時点において、本記事で解説する新しいビルドシステムでのビルドは使用時間がカウントされないようだ。
ビルド時間だが、テンプレートから作っただけのASP.NETアプリケーションであっても1〜2分のビルド時間を消費する。60分という無償枠はあっという間になくなるということは認識しておいてほしい。ただし、組織内のビルドエージェントを使用する場合、VS Onlineのビルドエージェントの使用料金が発生しないため、頻繁にビルドを行う場合は独自にビルドエージェントを構築するのも一つの考え方だ。
使用したビルド時間はVS OnlineのWebポータルトップページに逐次更新される。個人的な経験ではビルド終了後、10分程度待てば累積使用時間が更新されていた。
VS Onlineの新しいビルドシステムは従来のXAMLビルドとは仕組みが変わっている。ビルドエージェントを使用して、複数のサーバーもしくはクライアントで並列にビルドを行うという基本の仕組みは同じだが、XAMLビルドに比べて設定が圧倒的に容易になっている。
XAMLビルドではビルドエージェントを展開する管理者がビルドエージェントのインストール時にサーバーごとにタグを付けて管理した上で、ビルド定義でどのタグが付いたビルドサーバーで実行するかを設定する必要があった。
しかし、新しいビルドシステムでは、ビルドエージェントごとに環境変数で機能の有無を自動判定し、呼び出すエージェントを決定する。そのため、ビルド実行者が自分のビルドをどのビルドエージェントで実施可能なのかを意識する必要はない。全てVS Onlineが環境変数で定義された機能を確認の上、自動的にエージェントを呼び出してくれるのだ。
Copyright© Digital Advantage Corp. All Rights Reserved.