2009-06-10 5 views
4

私はCruise Control.netビルドをサブバージョンポストコミットフックからトリガーする方法を探しています。トリガークルーズControl.netビルド後コミットフックを使用して

コミット直後にビルドを開始したいと思っています。 これを行う通常の方法(サーバーのポーリング)はわかっていますが、フックを使用してサーバーをポーリングする必要がある場合は、サーバーをポーリングする必要はありません。

ダッシュボードの「強制ビルド」機能を呼び出すことが1つ考えられますが、すべての変更がトランクパスツリーの外にあってもビルドがトリガーされるため、ビルドを保証する変更は行われていません。

答えて

0

"Force Build"を使用するあなたの考え方はおそらく動作します。

私はトランクパスツリー以外の変更について懸念していますか? ポストコミットフックでこれをチェックすることはできません。変更されたファイルが/トランクの下にある場合にのみビルドを強制することはできません。

これを行うことの欠点はありましたか?

あなたは2つのチェンジセットを持っています。 チェンジセット1をコミットし、チェンジセット2をコミットし、ビルド/テストが完了するのを待たなければなりません。

+0

(コメントで固定タイプミス)にコミットした後、URLが更新されますそれ私が欠点と考えられてきた 、私の典型的なシナリオ(小さなチーム、比較的速いビルド)は、より大きなものになるでしょう。ビルドを集約すると、ビルドを壊したリビジョンを知ることが難しくなります。 – FkYkko

1

CC.NETが使用する理由は、ポーリング機構(ビルドに複数の開発者からの新しい変更を含めることが望ましいシナリオがいくつかあるかもしれません)。ただし、あなたのポスト・コミット・フックが、svnログ(可能性としては冗長ログ)を適切なフィルター設定でパイプライン処理する必要があるトランクからの変更を必要とする場合は、必要な場合にのみ "強制的なビルド"をトリガーします。

+0

実際には、 'svn log'の代わりに、svnlookはあなたに現在のコミットのファイルだけのリストを与えます。リストの文字列/ trunk /をgrepすることができます。私は後のコミットの一つでそれを行います。 – james

0

私はこれに反対することをお勧めしますが、本当にしたいのなら、私はURL triggerで始まります。

URLトリガーはすべてのURLの変更を監視するので、投稿コミットフックでhtmlファイルを更新することができます。あなたがのViewVCを使用している場合は別の方法として、あなたはそれが次のURLを監視するかもしれない:

http://servername/viewvc/repos?view=rev&revision=HEAD 

ごとにSVN

+0

これに対してURLトリガーを使用するのは、基本的に標準の変更トリガーを使用するのと同じです。それはまだポーリング操作です。 Btw、私はおそらくどちらかをするつもりはない。 – FkYkko

関連する問題