第4回 TFVCとGitのデプロイ、ビルド、テスト:連載:TFVC vs Git(8/8 ページ)
今回はVisual Studio Onlineの新しいビルドシステムを使って、ソースコードをコミットしてからビルド/テスト/デプロイまでを自動的に行う方法を見る。連載完結。
GitとTFVCの機能差
TFVCとGitでは仕組みの違いから、同種の機能であっても異なる方法で提供されている。TFVCではビルドにゲートチェックインを選択しておくと、チェックイン前にビルドおよびテストが実施される。ビルドやテストに失敗したコードはチェックインされず、シェルブとして登録される。
シェルブされたソースコードを修正して、ビルドとテストが正常終了すれば、VS Onlineにチェックインが行われる。大きなシステムになると、ローカルビルドではうまくいっても、全てのシステムを結合した状態のビルドが失敗することはよくあるので、品質を保つためにもゲートチェックインを活用してほしい。
Gitでは、前回紹介したように、ブランチとマージポリシーを設定することにより、ゲートチェックインとほぼ同等の設定が可能だ。レビュワーおよび、セキュリティを設定にしておけば、未テストコードがmasterブランチにマージされることも発生しなくなる。
現在ではTFVCとGitの差はかなりなくなっており、マイクロソフトもTFVCとGitで同等の機能を提供するように改良を続けている。ある機能が今日提供されていなくても、将来的に提供される可能性がある。今後の機能強化予定リストはVisual Studio Online Features Timelineで公開されており、要望は「UserVoice(英語のみ)」というサイトで受け付けられている。特にUserVoiceではFeatures Time lineにもない項目が載っているので、欲しい機能があれば投票すればいいだろう。
クロスプラットフォームのビルド
Linux/Mac OS Xのビルドエージェント
Mac OS Xおよび、Linuxのビルドエージェントはnpm(node package manager)のモジュールとして提供されている。具体的な手順は以下に公開されている。
実際にインストールした手順を紹介する。なお、以下ではMac用にMacBuildAgentというプールを作成しているものとする。
まずはエージェントのインストーラーのインストールからだ。
NodeのVS Onlineエージェントインストーラーパッケージをインストールして、npmフォルダーの権限を変更する。次に、エージェント用のフォルダーを作成して、そこにエージェントをインストールする。
エージェント用の作業フォルダーを作成し、vsoagentのインストールを実行すると、エージェントが実行可能になる。以下はエージェントの実行画面だ。
エージェントの実行画面
(1) エージェントを実行。
(2) エージェントの外部認証ユーザー名入力。
(3) エージェントの外部認証パスワード入力。
(4) VS OnlineのテナントURLを指定。
(5) エージェントのホスト名入力。指定しなければ現在のホスト名。
(6) エージェントプール名。指定しなければdefaultという名前が使用される。
ターミナルから「node agent/vsoagent」コマンドを実行すると、接続先のVS OnlineのURLと認証アカウントの問い合わせが行われる。Windows以外ではMicrosoftアカウントの認証ができないので、事前にMicrosoftアカウントにひも付いた、外部認証を作成しておく必要がある。第2回(下記のリンク先)で紹介した方法に従って外部認証アカウントを登録してほしい。
Macのビルドエージェントを実行しておけば、Macの実機がないとビルドできないXcodeアプリやXamarin.iOSアプリでもVS OnlineでCIを行うことが可能だ。
なお、Xcodeおよび、Xamarin StudioはGitしか対応していないため、チームプロジェクトも必ずGitで作っておく必要がある。
いかがだっただろうか? 従来のビルドから大幅に強化されたVS Onlineのビルドシステムは簡単になっただけではなく、クロスプラットフォームの対応も強化された。Java、Unity、Xcodeなどのビルドもサポートするのでビルドだけでもぜひ使ってみてほしい。
Copyright© Digital Advantage Corp. All Rights Reserved.