質問

CruiseControl 2.7.3 (オリジナル)を使用して、 SVNリポジトリにあるJavaプロジェクトをビルドします。

クルーズ設定では、変更セットに svnプラグインを使用しています。変更が検出されると、Antを使用してビルドがスケジュールされます。そのAntビルドファイルは、svnant Antタスクを使用して、プロジェクトの完全なチェックアウトを実行します。しばらくの間、これは単に「HEAD」というチェックアウトに設定されていましたが、変更セットのチェックの後、antの呼び出しの前にチェックインが行われたため、ビルドがチェックインまたは2回実行されない場合がありましたSVNチェックアウトに。その結果、修正チェックが取得するリビジョン番号を使用するようにAntビルドファイルを変更しようとしています。

CruiseControl構成リファレンスページでは、プロパティ svnrevision はラベルプロパティが labelincrementers によって設定されるように、ビルダーに設定して渡されます。 。 [強制ビルド]ボタンを押しても設定されていないようです。

これを成功させるために必要なことはありますか?

役に立ちましたか?

解決

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

コメントの質問への回答:

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

他のヒント

cruisecontrol antの呼び出しは、そのように構築された(svn)ラベルとは関係ありません。 svnラベルはbuild-nameに注釈を付けるために使用されますが、build.logは実際にはCruisecontrolを介して渡されるantからの単なる出力です。

antビルドの出力にリビジョン番号を書きたい場合、基本的に2つの方法があります:

1つの方法は、antが何らかの方法でsvnと対話することです。 antのSvnは、チグリスから contrib antタスクでのみ利用できます。 antファイルに入れるのは簡単です。ただし、ビルドでこれを使用すると、 svn info を実行して、自由に使えるAntプロパティとしてのリビジョン番号。

別の方法は、svnlabelincrementerを使用してリビジョン番号をラベルに割り当て、 buildproperties これらは、cruisecontrolからビルドスクリプトに渡されます。 Jayがコメントで言及したように、ラベルには最後に成功したビルドリビジョンのみが含まれていますが、これは望んでいるものではありません。 このブログで修正が提案されていますが、 antビルドファイルでの作業の方が適しているようです。

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

コミットごとに個々のビルドを起動しません。むしろ、ほぼ同時にコミットすると、単一のビルドが開始されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top