新規ビルドマシンでTFSの自動ビルドがエラーになる
TFSの自動ビルドを行うビルドマシンを新たに構築してビルドエージェントに登録してもチームビルドができない場合があります。それはチームビルドのプロジェクトファイルをカスタマイズした場合に起きるようです。
私の場合はバージョン管理の為にソース取得前にバージョンファイルをtfコマンドで取得するようにカスタマイズしていました。すると新しいビルドマシンではワークスペースを作成する前にtfコマンドが実行されるためtfコマンドがエラーとなってしまいます。一度でもワークスペースが作られると問題なく動作できるのですが、新しいマシンでは矛盾した動作となってしまい中々ワークスペースが作られません。
そこでtfコマンドでワークスペースを作ればいいんじゃんと思い色々とやってみましたが成功しませんでした。
試行錯誤してできた結果は「全て大文字で定義せよ」です。コンピュータ名は大文字で指定すること。ワークスペース名も大文字にした方が良いのかもしれません。
ダミーでチームビルドを作成し、そのビルドを実行させた時に作成されたワークスペースの情報を元に正規のチームビルド用のワークスペースを再作成したら動きました。
その時のコマンドは次のようになります。
XXXXXXXXがコンピュータ名から作られたワークスペース名です。_3を元に_1を作成するように指示しています。CCCCCがコンピュータ名です。これらが大文字である必要があるようです。sssssはサーバ名です。dddddはドメイン名でMSBuildユーザでビルとする環境となっています。
今思うと単純にチームビルドのプロジェクトでtfコマンドを行う部分をコメントアウトしてあげて一度でもソース取得させてあげれば良かったような気がします。
何はともあれチームビルド毎にワークスペースが必要なのでなにがしらの方法でワークスペースを作ってあげましょう。
私の場合はバージョン管理の為にソース取得前にバージョンファイルをtfコマンドで取得するようにカスタマイズしていました。すると新しいビルドマシンではワークスペースを作成する前にtfコマンドが実行されるためtfコマンドがエラーとなってしまいます。一度でもワークスペースが作られると問題なく動作できるのですが、新しいマシンでは矛盾した動作となってしまい中々ワークスペースが作られません。
そこでtfコマンドでワークスペースを作ればいいんじゃんと思い色々とやってみましたが成功しませんでした。
試行錯誤してできた結果は「全て大文字で定義せよ」です。コンピュータ名は大文字で指定すること。ワークスペース名も大文字にした方が良いのかもしれません。
ダミーでチームビルドを作成し、そのビルドを実行させた時に作成されたワークスペースの情報を元に正規のチームビルド用のワークスペースを再作成したら動きました。
その時のコマンドは次のようになります。
c:¥Program Files¥Microsoft Visual Studio 9.0¥VC>tf workspace /new /template:XXXXXXXX_3;ddddd¥MSBuild /computer:CCCCC /s:sssss XXXXXXXX_1;ddddd¥MSBuild
XXXXXXXXがコンピュータ名から作られたワークスペース名です。_3を元に_1を作成するように指示しています。CCCCCがコンピュータ名です。これらが大文字である必要があるようです。sssssはサーバ名です。dddddはドメイン名でMSBuildユーザでビルとする環境となっています。
今思うと単純にチームビルドのプロジェクトでtfコマンドを行う部分をコメントアウトしてあげて一度でもソース取得させてあげれば良かったような気がします。
何はともあれチームビルド毎にワークスペースが必要なのでなにがしらの方法でワークスペースを作ってあげましょう。
この記事に対するコメント