継続的インテグレーションをセットアップしようとしています。当社のソフトウェア スイートは、約 20 の C# ソリューションで構成されています。一部のプロジェクトでは、単体テスト (NUnit) が既に利用可能です。ビルドとテストのプロセスを自動化し、重大な変更に関する情報を早期に取得したいと考えています。
最近、ハドソンでやってみました。Web を徹底的に検索し、試行錯誤を繰り返した結果、解決できる問題もあります。
ここで、バグが先に進むのを妨げています。もちろん、私たちのソリューションはいくつかのコンポーネントを共有しています。共有コンポーネントが変更された場合、最初の失敗でビルド プロセスが停止することは望ましくありません。破損したすべてのプロジェクトを知りたいのです。これはハドソンでは対応できず、「パラメータ化されたトリガープラグインバージョン2.4」を使用した場合も同様でした(最初のプロジェクトが完全に完了した後に次のプロジェクトを開始することで対応し、ビルドが失敗した後に失敗しました。その後、電子メール通知も送信されず、その後、上流プロジェクトが成功した場合でも、下流プロジェクトはまったく開始されません!)。
これまでの Hudson での非常に残念な経験から、別のシステムを採用することを考えています。
あなたの前向きな経験から、次のことを行う継続的インテグレーション ツールをお勧めできますか?
- Subversion との統合 (ソース コードの取得とビルドのトリガーの両方)
- msbuild を開始します (例: Windows コマンド ライン)
- 上流プロジェクトでの失敗に関係なく、さらなるプロジェクトをトリガーします (実行する必要があります!)
- ビルド失敗時にメールで通知
- NUnit で単体テストを開始します (例: コマンドライン)
- 単体テストが失敗したときに電子メールで通知する
- ビルド/テスト環境内の他のコンピューターと連携して、他のシステムに展開/テストする
- コミュニティサポートが利用可能です
更新:ジェンキンスを試しました。上流のプロジェクトでの失敗に関係なく、さらなるビルドをトリガーします。最後の 2 点はまだテストしていません。