Team Foundation Server のXAMLでない方のビルド定義の作成・実行を1から解説する
前回からあっという間に2か月以上たってしまった。細く長くがんばろう。
2015以降のTFSではXAMLビルドは推奨されない*1方式になるので、新しいビルド環境の構築を試してみた。
環境:Team Foundation Server 2015 Update 4、Windows Server 2012、SQL Server 2012
目次
プールの追加
画面上から歯車アイコンを押して、コントロール パネル画面に遷移する。
コレクション管理ページの表示をクリックして、コレクションのプロファイル画面に移動する。
エージェントキュータブをクリックする。新しいプールとキューを作成するために、新しいキューリンクをクリックする。
ダイアログで「新しいプールの作成」ラジオボタンを選択し、プール名に名前(今回は「VSPool」とする)を設定する。(上記画像は既に作成済)
プールの作成に失敗した場合は、権限が不足しているので、Team Foundation 管理者ユーザにプールを作成してもらう。
権限の設定
ビルド等に必要な権限を設定するため、プールの管理リンクをクリックするか、コントロールパネルをクリックしてサーバーの管理画面に遷移して、エージェントプールタブをクリックする。
すべてのプールに新規作成したプールが表示されるので選択する。エージェントにはまだ何も表示されていない。役割をクリックすると、役割として「エージェントプール管理者」、「エージェントプールサービスアカウント」が表示される。両方にビルドエージェントを起動するユーザを追加する。
次にコレクションのプロファイル画面のエージェントキューに戻って、新規作成したプールを選択して、役割をクリックする。役割として「エージェントキュー管理者」、「エージェントキューユーザー」が表示される。エージェントキューユーザーにビルド定義を作成するユーザを追加する。「エージェントキュー管理者」は変更しなくて良い。
エージェントのインストール
今回はお試しという事で、開発で使用しているPCにエージェントをインストールして、手動でビルドを試す。 エージェントのダウンロードをクリックして、ビルドエージェントをダウンロードする。
ダウンロードした圧縮ファイルを解凍する。するとAgentフォルダとConfigureAgent.cmdファイル、RunAgent.cmdファイルが作成される。
初期設定のために「ConfigureAgent.cmd」を管理者として実行する。 コマンドプロンプトに表示された内容に従って、値を設定すると「settings.json」ファイルが作成される。
表示内容と設定値は以下の通り。
表示内容 | 設定値 |
---|---|
ローカルエージェントの設定が更新されます | 設定を更新したいので「Y」を入力 |
エージェント名 | エージェント一覧に表示したい名前を入力する。PC名を含めると実行場所がわかりやすい |
Team Foundation ServerのURL | http://xxx:8080/tfsといったURL |
どのエージェントプールに対して構成しますか? | 作成したプールの名前(「VSPool」)を入力 |
エージェントの作業フォルダのパス | 既定のまま |
エージェントをWindowsサービスとしてインストールしますか? | 今回は手動ビルドを試したいだけであり、エージェントも手動で起動・終了したいので「N」を入力 |
設定が完了すると、コントロールパネルのエージェントプールタブか、コレクションのプロファイル画面のエージェントキューにエージェントが表示される。
エージェントの起動
「RunAgent.cmd」を管理者として実行すると、コマンドプロンプトが開き、ビルドエージェントが起動する。
画面のエージェントの名の左端が緑色になる。
緑色になった状態でコマンドプロンプトを閉じると、画面のエージェントの名の左端が赤色になる。
ビルド定義の作成
ビルド定義の作成は簡単。+アイコンをクリックする。
画面上からVisual Studioを選択する。
リポジトリとブランチ、エージェントキューを選択する。作成したビルド定義は保存しないと残らないので注意する。
テンプレートに従って作成すると、最初にNuGetの復元を行うためにNuGetインストーラーが設定されている。必要なパッケージはリポジトリに登録済で、NuGetの復元は不要なのでビルドステップから削除する。
XAMLビルドでは、NuGetの復元をやめるためにビルドプロセステンプレートをカスタマイズしなければならなかったのでここは楽になった。
Visual Studioのビルドの設定にも「NuGet パッケージの復元」があるため、チェックされていないことを確認する。ちなみにNuGetの復元は別のステップになったので、ここのチェックボックスはチェックされることは基本的に無さそう。
ビルド以外にも様々な設定があり、ビルドステップも色々あるけど、上記以外は特に変更はしていない。保存アイコンをクリックしてビルド定義名を入れて保存する。
ビルドの実行
ビルドエージェントを起動した状態で、「ビルドをキューに挿入」をクリックする。
画面ではそのままOKを押す。
画面が変わりビルドが始まって、そのままビルドが成功した。ビルドが終了しても、エージェントを起動したコマンドプロンプトは開いたままなので、そのまま次のビルドを実行することも出来るし、終了する場合は、Ctrl+Cでコマンドプロンプトを閉じれば良さそう。
感想
エージェントプールの設定や、ビルドエージェントのインストールが多少手間がかかるけど、ビルドの実行自体はあっさりと成功した。
余談だが、画面コピーを取ってモザイク編集するのに、Monosnap というソフトを使ったら意外と便利だった。
参考資料
www.slideshare.net
*1:TFS 2018 Update 2では復活したみたいだが