在CruiseControl中排队

时间:2011-11-17 08:59:35

标签: cruisecontrol

我正在使用CruiseControl来管理我的构建。但是,在排队多个构建时遇到了一个小问题。排队一个额外的构建工作正常,但是当尝试排队多个其他构建时,构建将失败。

有没有办法在CruiseControl中增加队列大小?

当开发人员想要在构建服务器上构建某些内容时,他们会通过pythonscript将一些信息发送到服务器上的另一个pythonscript。此脚本使用必要信息更新config.xml,并使用http://localhost:8000/invoke?operation=reloadConfigFile&objectname=CruiseControl+Manager%3Aid%3Dunique强制进行配置更新。然后使用http://localhost:8000/invoke?operation=build&objectname=CruiseControl+Project%3Aname%3D%22"+productName命令强制构建。

这是将项目添加到构建队列的正确方法吗?

从CruiseControl调用的构建脚本需要ClearCase的版本ID,必须为每个构建更新。因此,config.xml中项目的配置也必须改变。

2 个答案:

答案 0 :(得分:1)

通常,您在config.xml中配置了所有项目(您大部分时间都保持不变)。

正如您在评论中所述,您必须更新构建文件的某个ID。

也许您应该为包含此ID的每个项目更新属性文件或类似内容。这个文件可以通过python脚本进行编辑,这样就不再需要不断更新config.xml了。

我认为更新/重新启动cruisecontrol会导致失败的行为。

答案 1 :(得分:1)

我发现了问题。当开发人员想要在服务器上构建某些东西时,顶级产品将通过ClearCase加载到构建服务器。这个顶级产品又有自己的配置文件,其中包含所有子产品。问题很简单,第一个配置文件被重写为每个项目,使得除第一个和最后一个项目之外的所有项目都被卸载。更多的是与ClearCase有关,而不是CruiseControl:P