2011-11-17 78 views
1

我正在使用CruiseControl来管理我的构建。不过,排队几个版本时遇到了一个小问题。排队一个额外的构建工作正常,但当试图排队多个额外的构建时,构建将失败。在CruiseControl中排队

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

当开发人员想要在buildserver上构建某些东西时,他们会通过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调用的buildscript需要ClearCase的版本ID,必须为每个版本更新。因此,config.xml中项目的配置也必须更改。

回答

1

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

1

通常情况下,您的config.xml文件中配置了所有项目(大多数情况下不会改变)。

正如您在评论中所述,您必须更新buildscript的某个ID。

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

我认为巡航控制的更新/重新启动会导致失败的行为。