Cruisecontrol.netの欠落したチェックイン
-
03-07-2019 - |
質問
CCNETをセットアップしましたが、全体としては正常に動作しています。 SVNサーバーをポーリングし、変更があればコードをチェックアウトします。ただし、ビルド中にチェックインがある場合を除きます。現在、ビルドとテストの実行には約3〜4分かかります。ビルド中にcrusieコントロールがコードをチェックインした場合、チェックインが認識されず、ビルドの実行後にチェックインが行われるまで待機します。
これはなぜですか?
これは、ccnet.configファイルのsvn部分です。
<sourcecontrol type="svn">
<executable>svn.exe</executable>
<trunkUrl>http://*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/</trunkUrl>
<workingDirectory>C:\CrusieControlProjects\AcademyPro\</workingDirectory>
<username>******</username>
<password>******</password>
<autoGetSource>true</autoGetSource>
</sourcecontrol>
わかりやすく編集 問題は、アトミックチェックインとは関係ありません。チェックインが完了すると、CCNETはアプリをビルドし、テストの実行を開始します。この時点で、他の誰かが別のチェックインを行います。テストの実行が完了したら、CCNETがテストの実行中に行われたチェックインを見つけることを期待します。
これは発生せず、チェックインが見逃され、期待するビルドが見逃されます。
これは予想される動作ですか、@ Jeff Mattfieldが言っていることを理解していないのですか?
解決 4
subversionサーバーの時間は、cruisecontrolサーバーの時間から約2時間遅れていました。これを修正し、チェックインがよりスムーズに実行されるようになりました。
他のヒント
Subversionのコミットはアトミックです。エラーなしで完了するまで、チェックアウトできません。並列コミット中にリポジトリから更新またはチェックアウトすると、そのコミット前のリポジトリの状態になります。
つまり、CC.NETは、最後の正常なコミット後にリポジトリに含まれていたものを取得します。
この問題は一度もなかったし、SVN + CCNetで数年間働いてきました。
- CCNetプロジェクト構成全体を投稿できますか?これは、たとえばトリガーと関係があるかもしれません。
- どのバージョンのCCNetを使用していますか
- CCNetは、ビルドの後に発生した変更のみを検出すると言います。わかりましたが、プロジェクトビルドレポート(&quot; 前回のビルド以降の変更&quot;)を見ると、前のビルドの後に発生したもののみ、またはそれらすべて(発生したものを含む)が表示されます前回のビルド中)?
ccservice.exe.config / ccnet.exe.configにデバッグログレベルが設定されていることを確認します。
<configuration>
<configSections>
...
</log4net>
<root>
<level value="DEBUG"/>
<root>
</log4net>
...
</configuration>
</configSections>
次に、ccnet.logのsubversionの出力でsubversionリビジョンを確認します。
2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe] <logentry
2009-06-05 10:34:41,816 [15336:DEBUG] [cc-config svn.exe] revision="1057">
リビジョンがsvn trunkUrl(http://*******/svn/repos/psl/AcademyPro/ASP%20.Net/trunk/)パスでコミットされている最新のリビジョンであることを確認してください。
その他の手がかりについては、ログと状態ファイルを確認してください。