如何覆盖cruisecontrol内部版本号

时间:2009-07-16 18:43:50

标签: build-automation cruisecontrol

我们使用cruisecontrol作为我们的CI工具。我想知道如何覆盖cruisecontrol分配的内部版本号。

原因是:       我们有并行巡航控制sessioon运行不同的模块,我不希望每个模块有不同的编号,而不是相同的数字来联系它。

4 个答案:

答案 0 :(得分:3)

对于提出这个问题的人来说,答案可能为时已晚。但是我在这里录制解决方案是为了其他可能需要此信息的人的利益。

我刚用我们新升级的(2.8.2)巡航控制系统尝试了这一点,它确实很好用。

  1. 使用labelincrementer任务以这种方式获得一些灵活性: 在config.xml上使用任务: < 项目>

    < labelincrementer defaultLabel =“my.cruise.build.1”/>

    < /项目>

  2. 确保您的巡航主目录中没有任何序列化的构建文件(该文件将具有名称< your_project > .ser。如果您确实从您的文件中看到此文件以前的构建尝试,删除它。不要担心它会被重新创建。这是为了防止构建任务形成peekinginto这个文件并增加以前格式的数字而不是你刚刚在config.xml中指定的新数据

  3. 从日志目录中删除/清除所有日志文件(来自< cchome > / logs /< project_name >区域)这是必需的避免构建任务从之前的构建中引用标签值。

  4. 按照指定完成所有操作后,运行构建,您将按照“my.cruise.build.1”中指定的方式看到下一个构建的标签

    如果您需要更多信息,请查看此页面:http://cruisecontrol.sourceforge.net/main/configxml.html#labelincrementer

答案 1 :(得分:0)

AFAIK,使用标准CruiseControl(没有自定义插件)是不可能的

最接近的是“remoteProjectLabeller”贴标机,它将使用另一个项目的构建标签:

    <labeller type="remoteProjectLabeller">
        <project>OtherProject</project>
    </labeller> 

答案 2 :(得分:0)

我正在做同样的事情。对我来说,一个简单明显的解决方案是在2个config.xml文件上运行2个CC实例,每个项目一个。他们每个人都会得到自己的构建号,存储库,定制等等。

答案 3 :(得分:0)

如果您使用的是Subversion,则有一种方法可以在svn中标记您的构建,然后检索该标签以便在其他构建中使用。不幸的是,我从未设置过,只看到过它,所以我不能提供任何有关如何实现它的细节。