我们使用cruisecontrol作为我们的CI工具。我想知道如何覆盖cruisecontrol分配的内部版本号。
原因是: 我们有并行巡航控制sessioon运行不同的模块,我不希望每个模块有不同的编号,而不是相同的数字来联系它。
答案 0 :(得分:3)
对于提出这个问题的人来说,答案可能为时已晚。但是我在这里录制解决方案是为了其他可能需要此信息的人的利益。
我刚用我们新升级的(2.8.2)巡航控制系统尝试了这一点,它确实很好用。
使用labelincrementer任务以这种方式获得一些灵活性: 在config.xml上使用任务: < 项目>
< labelincrementer defaultLabel =“my.cruise.build.1”/>
< /项目>
确保您的巡航主目录中没有任何序列化的构建文件(该文件将具有名称< your_project > .ser。如果您确实从您的文件中看到此文件以前的构建尝试,删除它。不要担心它会被重新创建。这是为了防止构建任务形成peekinginto这个文件并增加以前格式的数字而不是你刚刚在config.xml中指定的新数据
从日志目录中删除/清除所有日志文件(来自< cchome > / logs /< project_name >区域)这是必需的避免构建任务从之前的构建中引用标签值。
按照指定完成所有操作后,运行构建,您将按照“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中标记您的构建,然后检索该标签以便在其他构建中使用。不幸的是,我从未设置过,只看到过它,所以我不能提供任何有关如何实现它的细节。