2009-03-02 15 views
3

CruiseControl 2.7.3(元の)を使用して、SVNリポジトリにあるJavaプロジェクトを構築しようとしています。CruiseControlでSVNを使用しますか?

私のクルーズ設定では、変更セットにsvn pluginを使用しています。変更が検出されると、ビルドはAntを使用してスケジュールされます。そのAntビルドファイルは次に、svnant Antタスクを使用してプロジェクトの完全なチェックアウトを行います。しばらくの間、私たちはこれを "HEAD"というチェックアウトに設定しましたが、チェックインのためにビルドが起動しないケースがありました。 svnのチェックアウト。その結果、変更チェックが取得するリビジョン番号を使用するようにantビルドファイルを変更しようとしています。

CruiseControl設定リファレンスページでは、ラベルプロパティがlabelincrementersであるのと同じように、プロパティーsvnrevisionが設定され、ビルダーに渡されると主張しています。私が強制ビルドボタンを押すと設定されていないようです。

これを行うために必要なことはありますか?

+0

正確にはどのログですか? cruisecontrol.log、プロジェクトログ、またはビルドログ? – Steen

+0

ああ、恐らくあなたの質問にタグ 'subversion'を追加すると、もっと目を向けるでしょうか? – Steen

+0

質問に追加します。 –

答えて

1

SVNソース管理のコードを見ると、svnrevisionはビルダーに渡され、したがってAnt呼び出しに沿って渡されるようです。 Antスクリプトのプロパティを使ってみましたか?

力ビルドする場合には何も変更がなかったためですので、何も変更リビジョン番号がありません。コメントに質問を受けて

。その場合、svnlabelincrementerはあなたがローカルに持っているものの最新のリビジョン番号を渡します。これは最新のものです。

+0

私はsvnrevisionプロパティを表示するエコーを持っています。私はちょうど力ビルドボタンについてのおしゃべりを追加しました。私はそれが本当の問題だと思う。 –

+0

強制ビルドの場合には変更がなかったため、改訂番号は変更されていません。その場合、svnlabelincrementerはあなたがローカルに持っているものについて最新のものを渡します。これは最新のものでもあります。 –

+0

私は、チェックアウトを行っているスクリプトのためにそれをコードする必要があります。私はそれが今日まで問題だったことに気付かなかった。 –

0

cruisecontrol ant呼び出しは、そのように構築された(svn)ラベルとは関係ありません。 svnラベルはビルド名に注釈を付けるために使用されますが、build.logは実際にはcruisecontrolを通過する際のantの出力だけです。

一つの方法は、何らかの方法でSVNでアリ相互作用を持つことです:あなたはAntビルド出力に書き込まリビジョン番号を持っているしたい場合

は、基本的に2つの方法があります。アリのSvnはtigrisのcontrib ant taskからしか入手できないので、あなたのantファイルに入れるのは簡単ではありません。しかし、これをビルドすることで、svn infoを実行し、リビジョン番号をantのプロパティとして自由に入手できます。

もう一つの方法は、ラベルにリビジョン番号を割り当て、ビルドスクリプトにCruiseControlのから渡されbuildpropertiesを使用してAntスクリプトにそれを渡すためにsvnlabelincrementerを使用することです。コメントでJayが言及したように、ラベルには最後に成功したビルドリビジョンだけが含まれています。これは彼が望むものではありません。修正はthis blogで提案されましたが、antビルドファイルで作業を行う方が適切です。

+0

svnlabelincrementerは自動的にその$ {label}プロパティを送信します。残念ながら、現用パスから最新のリビジョンになることは保証されていません。更新コマンドに渡すことはできません。 –

0

quietperiod設定を使用できますか?コミット後、CruiseControlはビルドを開始する前にある程度の時間(たとえば30秒)待つことができます。

コミットごとに個々のビルドを起動することはありません。むしろ、同じ時間にコミットすると、1つのビルドが開始されます。

+0

quietperiodを設定すると、ビルドがトリガーされるチェックインに続く追加のチェックインを待つようにビルドが遅れます。これはCVSには本当に良いものでしたが、SVNにとってはそれほど有用ではありませんでした。しかし、それは私の問題を助けることはありません。 –

関連する問題