"序列化"Bamboo构建?

mar*_*c_s 6 unit-testing bamboo parallel-builds

我们使用Bamboo v3.1.1作为我们的持续集成构建服务器,并且它工作得很好 - 大部分时间.

我们遇到的一个问题是我们正在进行大量面向数据库的测试,例如,构建在共享数据库实例上执行一些单元和集成测试.

当我们碰巧同时运行同一个构建计划的多个Bamboo构建时,这会导致问题 - 它们在彼此的脚上磕磕绊绊并导致死锁,并且通常所涉及的所有构建都将因此而失败.

因此,虽然并行构建很棒 - 理论上 - 我们真的希望能够定义构建计划来"序列化"构建,例如,永远不要并行执行多个构建.

有谁知道我们怎么做?是否有一个设置告诉Bamboo"不要并行化这个构建计划 - 一次只做一个构建,以串行方式"

更新:

我的构建过程目前有两个阶段:

  • 核心构建(构建VS解决方案,将测试数据库更新到最新脚本)
  • 测试(NUnit 2.4)

"核心构建"可以很容易地并行运行多次 - 没有问题.但是,"测试"阶段不能运行多次,因为其中一些测试访问了一个且只有共享的"单元测试"数据库; 如果超过1个"测试"阶段进程正在运行,它们将最终导致彼此死锁.

那么我如何告诉Bamboo可以并行化"核心构建"阶段,但对于"测试",总是一次只运行一个实例,无论有多少构建正在运行?

jgr*_*tty 2

我的方法是将核心构建放在一个计划中,并将测试放在另一个计划中。核心构建将触发测试计划作为子计划。

然后,一旦核心构建完成,就会产生测试计划。

核心构建计划大概可以设置为在许多机器上并行运行多个实例。测试计划将仅限于同时运行计划的单个实例。

我唯一的困惑是你说:

  • 核心构建

    (构建VS解决方案,将测试数据库更新为最新脚本

更新测试数据库不会导致正在运行的测试计划出现问题吗?

  • 默认情况下,计划一次仅运行一个,除非您启用并增加服务器范围内并发构建的默认数量。即使在这种情况下,您也可以将计划配置为仅同时运行其自身的 1 个实例。它位于计划的“杂项”选项卡下。 (2认同)