継続的インテグレーション ビルド サーバーとして Bamboo v3.1.1 を使用していますが、ほとんどの場合、非常にうまく機能します。
私たちが抱えている問題の 1 つは、かなりの量のデータベース指向のテストを行っていることです。たとえば、ビルドは、共有データベース インスタンスでユニット テストと統合テストの一部を実行します。
これは、同じビルド プランに対して複数の Bamboo ビルドが同時に実行されている場合に問題を引き起こします。それらはお互いの足につまずいてデッドロックを引き起こし、通常、関連するすべてのビルドがこれにより失敗します。
並行ビルドは素晴らしいものですが、理論的には、ビルドを「シリアル化」するビルド プランを定義できるようにしたいと考えています。たとえば、複数のビルドを並行して実行しないようにします。
どうすればこれができるか知っている人はいますか?? Bamboo に「このビルド プランを並列化しないでください - 一度に 1 つのビルドをシリアルに実行する」ように指示する設定はありますか?
アップデート:
現在、私のビルド プロセスには次の 2 つの段階があります。
- コア ビルド (VS ソリューションのビルド、テスト データベースを最新のスクリプトに更新)
- テスト (NUnit 2.4)
「コア ビルド」は、複数回並行して簡単に実行できます。問題はありません。ただし、これらのテストの一部は唯一の共有「単体テスト」データベースにアクセスするため、「テスト」ステージを複数回実行することはできません。複数の「テスト」段階のプロセスが実行されている場合、それらは互いにデッドロックすることになります。
では、「コア ビルド」ステージを並列化しても問題ないが、「テスト」では実行中のビルドの数に関係なく、一度に1 つのインスタンスのみを実行することを Bamboo に伝えるにはどうすればよいでしょうか??