如何防止CruiseControl.NET中的并发构建?

Joe*_*Fan 11 cruisecontrol.net

我们在CruiseControl中有几个项目,我注意到通常有两个或更多项目同时建设.这似乎导致了冲突.通常,构建失败,如果我查看原因,它无法访问某个文件,如果我等到其他构建完成,我可以强制构建失败的构建,它将成功.

如何配置CC,以便在它们相互冲突时不会同时运行构建?

PVi*_*itt 10

您必须在一个队列中执行所有相互依赖的构建.

巡航控制项目配置元素有两个属性来控制并发和构建顺序:

<project name="Project 1" queue="Q1" queuePriority="1">
Run Code Online (Sandbox Code Playgroud)

随着queue您可以定义在哪个队列的项目应当建立,与queuePriority您可以定义的顺序来建立在几个建立请求.

因此,两个无法并行构建的项目必须位于同一队列中queue="Q1".当第二个项目取决于第一个项目时,第二个项目的优先级必须高于第一个项目.


Nad*_*zie 7

您可以使用锁定功能来定义不应同时运行的queus.

这在1.4.3版中可用

文档中的示例:

<cruisecontrol>
  <queue name="Q1" lockqueues="Q2"/>
  <queue name="Q2" lockqueues="Q1"/>

  <project name="MyFirstProject" queue="Q1" queuePriority="1">
    ...
  </project>
  ...

  <project name="MySecondProject" queue="Q2" queuePriority="1">
    ...
  </project>
  ...
</cruisecontrol>
Run Code Online (Sandbox Code Playgroud)