我们使用 Cruisecontrol 作为我们的 CI 工具。我想知道如何覆盖巡航控制分配的内部版本号。
原因是:我们为不同的模块运行了并行巡航控制会话,我不想为每个模块使用不同的内部版本号,而是使用相同的编号来关联它。
我们使用 Cruisecontrol 作为我们的 CI 工具。我想知道如何覆盖巡航控制分配的内部版本号。
原因是:我们为不同的模块运行了并行巡航控制会话,我不想为每个模块使用不同的内部版本号,而是使用相同的编号来关联它。
对于提出这个问题的人来说,答案可能为时已晚。但是我在这里记录解决方案是为了其他可能需要此信息的人的利益。
我刚刚用我们新升级的 (2.8.2) 巡航控制试了一下,它真的很好用。
使用 labelincrementer 任务以这种方式获得一些灵活性:在您的 config.xml 上使用任务:< project >
< labelincrementer defaultLabel="my.cruise.build.1" />
< /项目>
确保您的 Cruise 主目录中没有任何序列化的构建文件(该文件的名称为 < your_project >.ser。如果您确实在之前的构建尝试中看到此文件,请删除它。不要担心它会被重新创建。这需要防止构建任务形式窥视此文件并以以前的格式增加数字,而不是您刚刚在 config.xml 中指定的新格式
从日志目录中删除/清理所有日志文件(来自 < cchome >/logs/< project_name > 区域)这是避免构建任务引用来自先前构建的标签值所必需的。
一旦您按照指定完成了所有这些,运行构建,您将按照您在“my.cruise.build.1”中指定的方式看到下一个构建的标签
如果您需要更多信息,请查看此页面:http: //cruisecontrol.sourceforge.net/main/configxml.html#labelincrementer
AFAIK,使用标准 CruiseControl(没有自定义插件)是不可能的
最接近的是“remoteProjectLabeller”标签器,它将使用另一个项目的构建标签:
<labeller type="remoteProjectLabeller">
<project>OtherProject</project>
</labeller>
我也在做同样的事情。对我来说最简单的解决方案是在 2 个 config.xml 文件上运行 2 个 CC 实例,每个项目一个。他们每个人都会获得自己的内部版本号、存储库、自定义等。
如果您使用的是 Subversion,有一种方法可以在 svn 中标记您的构建,然后检索该标签以用于其他构建。不幸的是,我从未设置过它,只看到它使用过,所以我无法提供有关如何实现它的任何细节。