6

継続的インテグレーション ビルド サーバーとして Bamboo v3.1.1 を使用していますが、ほとんどの場合、非常にうまく機能します。

私たちが抱えている問題の 1 つは、かなりの量のデータベース指向のテストを行っていることです。たとえば、ビルドは、共有データベース インスタンスでユニット テストと統合テストの一部を実行します。

これは、同じビルド プランに対して複数の Bamboo ビルドが同時に実行されている場合に問題を引き起こします。それらはお互いの足につまずいてデッドロックを引き起こし、通常、関連するすべてのビルドがこれにより失敗します。

並行ビルドは素晴らしいものですが、理論的には、ビルドを「シリアル化」するビルド プランを定義できるようにしたいと考えています。たとえば、複数のビルドを並行して実行しないようにします。

どうすればこれができるか知っている人はいますか?? Bamboo に「このビルド プランを並列化しないでください - 一度に 1 つのビルドをシリアルに実行する」ように指示する設定はありますか?

アップデート:

現在、私のビルド プロセスには次の 2 つの段階があります。

  • コア ビルド (VS ソリューションのビルド、テスト データベースを最新のスクリプトに更​​新)
  • テスト (NUnit 2.4)

「コア ビルド」は、複数回並行して簡単に実行できます。問題はありません。ただし、これらのテストの一部は唯一の共有「単体テスト」データベースにアクセスするため、「テスト」ステージを複数回実行することはできません。複数の「テスト」段階のプロセスが実行されている場合、それらは互いにデッドロックすることになります。

では、「コア ビルド」ステージを並列化しても問題ないが、「テスト」では実行中のビルドの数に関係なく、一度に1 つのインスタンスのみを実行することを Bamboo に伝えるにはどうすればよいでしょうか??

4

2 に答える 2

2

私のアプローチは、コア ビルドを 1 つの計画に入れ、テストを別の計画に入れることです。コア ビルドは、テスト計画を子計画としてトリガーします。

その後、コア ビルドが完了するとすぐに、テスト計画が生成されます。

コア ビルドプランは、おそらく、多数のマシンで複数のインスタンスを並行して実行するように設定できます。テスト計画は、一度に実行される計画の 1 つのインスタンスに制限されます。

私の唯一の混乱は、あなたが言ったことです:

  • コアビルド

    (VS ソリューションの構築、テスト データベースの最新スクリプトへの更新)

テスト データベースを更新すると、実行中のテスト計画に問題が発生しませんか?

于 2011-11-03T02:33:49.540 に答える