2009-07-13 8 views
3

私のマネージャーから私たちのプロジェクトのビルドオートメーションのセットアップを求められました。私はCruiseControl.Netを継続的な統合サーバーとして使用することを決めました。これは、他のチームメンバーが少し経験しているので、私は何も持っていません。そのため、この仕事を喜んでしています。CruiseControl.Netでタグ付きプロジェクトをビルド

私たちはリポジトリとしてSubversionを使用しています。最終的な目標は、プロジェクトにタグが付けられるたびにビルドをインスタンス化することです。たとえば、

svn:// svn/tags/ProjectX /にsvn:// svn/tags/ProjectX/JulyCheckPointなどのフォルダを追加すると、新しく追加されたタグ(svn:// svn/tags)をチェックアウトする必要があります。/ProjectX/JulyCheckPoint)をローカルディレクトリ(D:\ temp \ tags \ ProjectX \ JulyCheckPoint)に移動し、ナントファイル(D:\ temp \ tags \ ProjectX \ JulyCheckPoint \ nant.build)を実行します。

CruiseControlは変更のためにsvn:// svn/tags/ProjectX /を監視することができますが、ビルドサーバのローカルディスクに最新のタグをチェックアウトして、わからない場合はnant.buildをどのように実行するのかは分かりません最新のタグの名前私は少しのグーグルを行い、svn post-commitフックが私が調べなければならないものかもしれないと信じています。

私はそれが理にかなっていることを望みます。詳しい情報や説明が必要な場合は教えてください。どんな指導/助言も高く評価されるでしょう。

乾杯。

答えて

0

あなたがこれを行うことができると思う唯一の方法は、私が思うsvn:externalsを使用し、あなたのタグを指すリポジトリを設定することです。あなたが監視する方法を知っているので、その後

svn propget svn:externals blah 

とCruiseControl.NETでは例えばSVNそれに対して、チェックアウトhttp://svn/repos/blah

をチェックアウトを行うには、そのプロジェクトのために、あなたの設定に

2

<checkExternals>True</checkExternals> 
<checkExternalsRecursive>True</checkExternalsRecursive> 

を置きます/ svn/tags/ProjectX /に変更を加えると、それがナントスクリプトを起動させることができます。このスクリプトは、svn(http://nantcontrib.sourceforge.net/release/0.85/help/tasks/index.htmlのsvnタスクを参照)に対するコマンドを実行して、/ svn/tags/ProjectX /の最新のフォルダをチェックアウトすることができます。ここから、このナントスクリプトを使用して、ナントタスクを使用して、チェックアウトされたフォルダー内のナントスクリプトを呼び出すことができます。

1

これはあなたの質問に答えることはできませんが、HEADではなくタグからビルドを選択する理由が不思議です。

一般的に、継続的なインテグレーションは、問題が早期に発見されるように、ソースコードリポジトリに変更が加えられるたびにプロジェクトコードを構築するために使用されます。

私は本当に好きですthis articleによってMartin Fowler私は、継続的な統合を開始したとき、それは私を助けました。

+0

ありがとう、私は間違いなくその記事を見ていきます。私が念頭に置いていた次のステップは、夜間にトランクからビルドすることです(あなたが言及する目的のために)。 最終的にタグからビルドすることで、タグ付きプロジェクト(WiXを参照)を含む.msiインストールパッケージをタグにコミットするビルドマネージャー/開発者が必要になります。このようにして、特定のビルドにタグを付けるだけで、私たちが到達するマイルストーンをリリースインストールに組み込むことができます。私は見落としてしまった、これに対する何らかの欠点はありますか? – Boris

+0

これは合理的な要求のように聞こえるが、CC.Netが動作する方法には実際には適合しない。 この場合、管理者が実行するリリースビルドという2番目のCC.Netプロジェクトがあることをお勧めします。このビルドによってMSIが作成され、トランクにタグが付けられます。タグ付きコードに変更が必要な場合は、ブランチからビルドするために新しいCC.Netプロジェクトを分岐して作成することができます。 これは非常に単純な概観ですが、うまくいけば、始めるためのいくつかのアイデアが与えられます。 – MikeD

0

すべてのサポート担当者を歓迎します。私はacloutierの提案にショットをつけ、各プロジェクトに静的なファイルを作成することにしました。これらのファイルはビルドサーバーに常駐しています。

CruiseControl.Net(ビルドサーバーのセットアップ)は、各プロジェクトのタグリポジトリを監視し、適切な静的なナントファイルを起動します。次に、このナントファイルは、svn:// svn/tags/ProjectX /ロケーションの最後に追加されたフォルダの名前を決定するC#コードを実行します。

最後に追加されたフォルダの名前を知ることで、svn:// svn/tags/ProjectX /の下にある最近タグ付けされたプロジェクトをローカルロケーションにsvn-checkoutし、プロジェクト内でnantファイルを実行できます。

誰もが任意のコードスニペットや明確化を必要とする場合、私は仕事に入るとき、私は喜んでそれらを提供します。助けてくれてありがとう!

+0

こんにちはボリス、あなたは説明したり、この作品をどうやって入手したかのスニペットを見せたりできますか?ありがとうございました! – Abe

関連する問題