2010-12-07 16 views
7

私はCruiseControl.NETでいくつかのプロジェクトを実行しています。それらの多くにはビルドエラーがなく、ビルドに成功しています。彼らはすべてビルドする前に最新のコードを取得しようとします。CruiseControl.NETで散発的なSVN 500エラー

私は頻繁にビルドに失敗したことに気付きました。 CruiseControlは「例外」を報告します。例外はSVN 500エラー(内部サーバーエラー)です。それは無作為にストライキされますが(例えば、1つのプロジェクトでは、交互のビルドがすべて失敗します)。

私はこれらの散発的に失敗したプロジェクトのいくつかを同じ資格でチェックアウトしようとしましたが、動作します。すべてのビルドが失敗するわけではないので、プロジェクトのビルドが分かります。

何が問題なのですか?何が価値がある、ここでは代表的な例外の一番上の行は、(SVNプロジェクトのURLまたは資格情報なし)だために

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for 'https://some/url/trunk' 
. Process command: C:\Program Files\CollabNet Subversion Client\svn.exe log https://some/url/trunk -r "{2010-12-04T09:09:19Z}:{2010-12-07T09:08:48Z}" --verbose --xml --username ******** --password ******** --non-interactive --no-auth-cache 

編集:時々、これはローカルでSVNの競合がありますためと考えられますフォルダ。しかし、それは一貫していません。


バウンティ:私はこれまでの一般的な解決のための報奨金を追加しました:優雅SVNのエラーに対処するように構成することCC.NETができる方法、つまり定期的に更新チェックによってトリガSVNの失敗を扱うことはありません(スケジュールされた日常的なビルドとは対照的に)ビルドの失敗と同様に、固定されるまで、または接続が回復するまで、正常に後退します。

私はこれを自分自身で把握することはできませんでしたが、私はCC.NETの専門家ではなく、長い間探していませんでした。これに対応しているのですか、コーディングが必要でしょうか?ありがとう!我々は結果を報告し、新しいコミットとチェックアウト+ビルド+テストのためにすべての変更をチェックするように設定するCC.NETサーバーを持って、

  • を明確にするために

  • しかし、SVNサーバーがダウンした場合、または接続が失われた場合、最後のコミットがビルドを破ったかのように扱われます。ビルドステータスは赤に設定され、最後のコミッターはエラーであるかのように電子メールを送信します。
  • はい、これは1日1回のビルドジョブでは問題になりますが、連続コミットの統合ではこれは便利な動作ではないと思います。
+0

原因にかかわらず、ビルドに失敗するのではなく、SVN例外を無視するようにCC.NETを設定する方法にも興味があります。 – Rup

+0

あなたのCIセットアップでは、きれいなチェックアウトが何を作り出すべきですか?その場合は、例外が発生すると、ビルド環境全体が無効になります。 – Mark

+0

ここで100%クリアするには、ソース管理の失敗の場合は、正確に何を構築しますか?確かに、確かに再現不可能なものなので、役に立たない。最悪の場合、まったく構築されないもの。 – Mark

答えて

1

この問題を解決する難しい方法の1つは、svnクライアントを呼び出してファイルを作成するバッチファイルまたはカスタムラッパー(CruiseControl.NETのソース管理機能ではなく)で変更をチェックすることですビルドが必要な場合は、シグナリング変更のいくつかの他の方法)。バッチまたはラッパーは必要に応じて例外を処理できます。もちろん、このソリューションではビルドプロセスの残りの部分を変更する必要があります。

+1

ありがとう - きちんとしたアイデア。私はあなたに賞金をあげますが、これらの古い質問のように、すでに存在するいくつかの設定オプションを私に指摘したあなたのコメントのためにもっとたくさんのことをします。http://stackoverflow.com/questions/2086957/can-we-tell-cruisecontrol- net-to-ignore-source-control-timeout-errors/2086994#2086994 http://stackoverflow.com/questions/1156911/cruisecontrol-net-build-fails-when-svn-is-not-available/1156955#1156955私は何とか見逃してしまった。ありがとう - 私はそれらと一緒に遊んで、私は時間を取得すると私はCC.NETのソースを掘り下げ、私が必要なものを開発します。 – Rup

+0

あなたはそれが有用であることをうれしく思いました。 – alexandrul

関連する問題