私は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回のビルドジョブでは問題になりますが、連続コミットの統合ではこれは便利な動作ではないと思います。
原因にかかわらず、ビルドに失敗するのではなく、SVN例外を無視するようにCC.NETを設定する方法にも興味があります。 – Rup
あなたのCIセットアップでは、きれいなチェックアウトが何を作り出すべきですか?その場合は、例外が発生すると、ビルド環境全体が無効になります。 – Mark
ここで100%クリアするには、ソース管理の失敗の場合は、正確に何を構築しますか?確かに、確かに再現不可能なものなので、役に立たない。最悪の場合、まったく構築されないもの。 – Mark