1

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

原因是:我们为不同的模块运行了并行巡航控制会话,我不想为每个模块使用不同的内部版本号,而是使用相同的编号来关联它。

4

4 回答 4

3

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

我刚刚用我们新升级的 (2.8.2) 巡航控制试了一下,它真的很好用。

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

    < labelincrementer defaultLabel="my.cruise.build.1" />

    < /项目>

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

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

一旦您按照指定完成了所有这些,运行构建,您将按照您在“my.cruise.build.1”中指定的方式看到下一个构建的标签

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

于 2009-09-04T09:51:44.707 回答
0

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

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

    <labeller type="remoteProjectLabeller">
        <project>OtherProject</project>
    </labeller> 
于 2009-07-16T18:56:10.773 回答
0

我也在做同样的事情。对我来说最简单的解决方案是在 2 个 config.xml 文件上运行 2 个 CC 实例,每个项目一个。他们每个人都会获得自己的内部版本号、存储库、自定义等。

于 2009-07-21T15:18:08.293 回答
0

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

于 2009-07-21T15:21:11.080 回答