我使用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中项目的配置也必须更改。
通常情况下,您已经在config.xml中配置了所有项目(您基本保持不变)。
正如你在评论中所说的,你必须为构建脚本更新一个特定的id。
也许你应该为每个项目更新一个包含这个id的属性文件或类似的东西。这个文件可以由python脚本编辑,这样就不需要不断地更新config.xml了。
我认为更新/重启cruiscontrol会导致失败行为
我找到问题了。当开发人员想要在服务器上构建一些东西时,顶部的产品通过ClearCase加载到构建服务器上。这个顶级产品又有自己的配置文件,其中声明了它的所有子产品。问题很简单,为每个项目重写第一个配置文件,使所有项目,除了第一个和最后一个,成为卸载。与CruiseControl相比,与ClearCase有更多的关系:P