5

私が探しているのは、リポジトリ内のすべてのブランチのCIと自動ビルドです。私は、これらのWebアプリケーションのそれぞれのビルドを自分のプロジェクトにし、ブランチサイトに仮想ディレクトリ(または同等のもの)として配置したいと思います。新しいブランチを作成し、継続的な統合を開始してプロセスを自動的に構築できるようになることは素晴らしいことです。 IISで新しい仮想ディレクトリを追加することは大したことではありません。残りの部分が適切な場所に配置されていれば、これを行うのは大丈夫です。例についてはSVNを使ったブランチの自動ビルド

http://branch.domain.com/branch101/

http://branch.domain.com/otherBranchName/

現在、別の継続的インテグレーションサーバまたはビルド私はSVN、ナントとCruiseControl.Netを使用していますが、私は開いています状況が必要な場合はスクリプティングを行います。

+0

私は疑問を理解しています - コードを分岐するときに新しいCC.netプロジェクトが自動的に作成されることをお探しですか? - または、複数のブランチを構築するためにccnetを設定する最良の方法 - 仮想ディレクトリに言及します - 私たちはウェブアプリケーションを話していますか? – Richard

+0

両方ともはい、私は質問を明確にするように編集しました(うまくいけば!) –

答えて

1

本当の質問は分かりません。とにかく私はあなたにハドソン(http://hudson-ci.org/)を提案します。

使いやすいです。 XMLファイルで簡単に設定できます。 リモートAPIを持っています。

+0

+1ハドソン。 (ただし、複数のプラットフォームでビルドを行う場合は、すべてのプラットフォームが終了するまで、Hudsonは次のビルドに進まないので、最も遅いビルド/テストマシンでは他の人が減速することになります。私たちが試してみたとき) – sbi

+0

本当ですか?プラットフォームの場合、あなたはハドソンの仕事を意味しますか?ビルドエグゼキュータを1つ以上設定できるためです。私はそれを使うことはありませんが、Hudsonはビルドを配布するための "マスター/スレーブ"モードをサポートしています。 –

+0

@ungarida:Hudsonは、私たちが評価したより有望なCIツールの1つであり、これによりISTRを放棄しました。しかし、私はハドソンの "仕事"が何であるかを覚えていないので、これは、確かに分かりません。 – sbi

1

分岐に基づいて継続的な統合プロジェクトを自動的にセットアップすることは、私が望むとは思えません。しかし、あなたのブランチがかなり標準的で、大幅に変更されていない場合は、新しいプロジェクトをセットアップするためにPowerShellスクリプト(またはあなたが好きなスクリプト言語)を書くのはむしろ簡単です。

CC.NETでブランチすると、トランクプロジェクトをコピーして必要なフィールドを検索して置き換えるのに1分もかかりません。私たちが問題に遭遇する唯一の時は、ビルド中にカスタムスクリプトが使用されている場合です。これらのスクリプトが存在する場合は、それらを変更する必要がありますが、それは継続的な統合システムでも発生します。

3

これは実行できますが、その多くはビルドスクリプトに依存します。たとえば、トップレベルのsvnフォルダを監視するようにcc.netに指示した場合は、http://myserver.com/svn/project/trunkではなく、プロジェクトモニタ:

http://myserver.com/svn/projectがあります。 http://myserver.com/svn/projectに変更がある場合は、ビルドを開始します。

ビルドスクリプトは、ソースが古くなっているかどうか、ビルドする新しいブランチがあるかどうかを判断します。ビルドスクリプトは、新しいブランチ用に新しいVDirを作成します。

もう1つの方法は、cc.netに新しいプロジェクトを追加する以外に何もしないように設計されたcc.netプロジェクトを作成することです。 (BranchBuilderプロジェクトと呼んでください)私はcc.netのプリプロセッサを活用し、トランクと各ブランチのプロジェクトを含むトップレベルの.configファイルを用意しました。ブランチビルダープロジェクトは、svnのルートパスを監視します。変更があった場合は、最後のビルド以降に新しいブランチがあるかどうかを調べます。存在する場合は、そのブランチ用のccnet-branchname.configファイルを作成し、vdirを作成して、追加のインクルードでccnet.configルートファイルを更新することができます。

ccnet configが更新された後、cc.netは設定ファイルが変更されたことを認識し、新しいブランチプロジェクトを追加してconfigをリロードします。そのブランチプロジェクトが実行され、新しいブランチが構築されます。

+0

これは、私の意見では、本当に悪い考えです。私はあまりにも多くを自動化していると思う。このソリューションと比較してブロックをccnet.configファイルに追加するとどれくらいの問題が発生する可能性がありますか? –

+1

手作業でもやっています。ちょうどあなたが何かをすることができるので、あなたがすべきではありません。しかし、OPが要求するブランチ機能の自動ビルドを実行します。しかし、私は彼らがどのくらい頻繁に枝分かれするか分かりません。 1日に何十回もすることができます。コンピュータは繰り返しの仕事をするように設計されていますね。 – PilotBob

+1

@JoshKodroff私はそれは意見の問題だと思います。「高価な」分岐は、多くの開発が1つの行にまとめられる(リスクが増大する)理由です。ビルドプロセスを再構成するためにマシンにログインする必要があるため、分岐に大きなコストがかかるようです。 –

関連する問題