我正在尝试配置CruiseControl,以便每天凌晨3:00对源代码和的每次修改构建项目。这是我迄今为止在project.xml
中所做的事情(并且它不起作用,每日构建都没有完成):
...
<schedule interval="120">
<maven2 … />
<maven2 … time="0300"/>
</schedule>
...
我做错了什么?
答案 0 :(得分:2)
我通常使用cc.net,但是当我正确理解文档时,您有两个选择:
requireModifications
属性设置为false
(这不是您想要的)您的配置会发生以下情况:“修改”版本将全天运行,因此凌晨03:00 CruiseControl无法检测到任何修改(至少我会假设如此)。由于没有修改,因此不会运行每日构建。
......通常不是 混合时间构建的好主意 多个构建在同一个项目中 多个构建将“吃掉”所有 在被检测到之前的变化 基于时间的构建。
答案 1 :(得分:1)
据我所知,CruiseControl不可能这样做:(
答案 2 :(得分:1)
我们每天晚上都会听取gitrepo的变化并做夜间建设,我们这样做:
<schedule interval="${buildtime}">
<ant antscript="ant.bat"
buildfile="build.xml"
</ant>
</schedule>
<bootstrappers>
<gitbootstrapper localWorkingCopy="${checkout_folder}"/>
</bootstrappers>
<modificationset quietperiod="${quiettime}"
Ignorefiles="${ignorelist}">
<git localWorkingCopy="${checkout_folder}"/>
<timebuild username="Cruisecontrol nightwatch"
time="0300"
property="build_nightly"/>
</modificationset>
正如您在此处看到的,线索是定时构建位于modificationset
,而不是schedule
,因此在每个预定时间,它将检查git repo是否已更改或是时候进行夜间建设了。
答案 3 :(得分:0)
我在CruiseControl.net上使用 ScheduleTrigger 。
前段时间我已将CI服务器从CC.net迁移到 TeamCity - 请查看它(它们也有免费版本)。它配置得更好更容易(告别那些巨大的无法管理的XML配置文件; - )
答案 4 :(得分:0)
我想到了一种方法,构建脚本拆分为插件。
例如:https://github.com/LightWare/LightCI/blob/master/config.xml