CruiseControl.NET + git でgit日本語ユーザー名が文字化けでビルドに失敗する

スクリーンショット 2012-11-09 1.34.41

CruiseControl.NET が msbuild を呼び出す際、ソースコードを修正したユーザー名を引き渡そうとする。この時文字化けが原因で引数の解釈に失敗しビルドが進まないという現象があった。

上記の画像は stateファイル の一部。特に初回はソースコードを編集した全ユーザーを取り出そうとして失敗する可能性が更に高まる。根本的な対処ではないのだが、ともかくある時点で一度成功した、ということを記録できればよいと考え、すでに運用できている別のstateファイルを持ってきて上書きすることで今回は解決した。

Git ソースコードのプロジェクトを作成する場合、初回のクローンでコードを持ってくることとともに、msbuild 以外、exe 呼び出しを経由しないタスクのみが含まれたプロジェクトにして一旦成功させるのが良いかもしれない。

こうやって苦労すると tfspreview.com (TeamFoundation Services) のありがたみがつくづく分かる。 tfspreview.com に向かってGitの特定ブランチを push できるようになるととても嬉しい。

追記: nuget がパッケージの復元に失敗する状況も途中で発生した。CruiseControl.NET サービスの実行ユーザーに対し環境変数 ‘EnableNuGetPackageRestore’ を true にした。

RestorePackages:
  "..\.nuget\nuget.exe" install "F:\Builds\ccnet\SampleWeb\Src\SampleWeb\SampleWeb\packages.config" -source ""  -RequireConsent -solutionDir "..\ "
F:\Builds\ccnet\SampleWeb\Src\SampleWeb\.nuget\nuget.targets(87,9): error : パッケージの復元は既定で無効になっています。確認のため、Visual Studio の [オプション] ダイアログ ボックスを開き、Package Manager ノードをクリックして、[NuGet がビルド中に存在しないパッケージをダウンロードするのを許可する] チェック ボックスをオンにします。また、環境変数 'EnableNuGetPackageRestore' を true に設定して確認することもできます。 [F:\Builds\ccnet\SampleWeb\Src\SampleWeb\SampleWeb\SampleWeb.csproj]
F:\Builds\ccnet\SampleWeb\Src\SampleWeb\.nuget\nuget.targets(87,9): error MSB3073: コマンド ""..\.nuget\nuget.exe" install "F:\Builds\ccnet\SampleWeb\Src\SampleWeb\SampleWeb\packages.config" -source ""  -RequireConsent -solutionDir "..\ "" はコード -1 で終了しました。 [F:\Builds\ccnet\SampleWeb\Src\SampleWeb\SampleWeb\SampleWeb.csproj]
プロジェクト "F:\Builds\ccnet\SampleWeb\Src\SampleWeb\SampleWeb\SampleWeb.csproj" (既定のターゲット) のビルドが終了しました -- 失敗。
プロジェクト "F:\Builds\ccnet\SampleWeb\Src\SampleWeb\Sample.Azure.Autobuild\Sample.Azure.Autobuild.ccproj" (Publish ターゲット) のビルドが終了しました -- 失敗。
プロジェクト "F:\Builds\ccnet\SampleWeb\Src\SampleWeb\Autobuild.build" (Publish ターゲット) のビルドが終了しました -- 失敗。
広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。