`
gigix
  • 浏览: 349494 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

持续集成上铁道——CruiseControl.rb简介

阅读更多

什么是CruiseControl.rb


CruiseControl.rb(简称CC.rb)是由ThoughtWorks开发并贡献给开源社区的持续集成工具。它的名字来源于ThoughtWorks发起的另一个开源项目CruiseControl,乍看之下也颇有几分相似。

为什么需要CruiseControl.rb


因为它特别适用于Ruby on Rails项 目。遵循Rails项目一贯的“convention over configuration”原则,CC.rb针对Rails项目制订了一组很有意义的持续集成惯例约定,大部分Rails项目不需要任何额外工作就可以 在CC.rb上开始持续集成。这也正是很多项目可以在5分钟内搞定持续集成环境的原因。如果你需要与众不同的构建设置,CC.rb也允许你以非常简单的方式指定这些设置——没有XML,配置都是你熟悉的Ruby代码。

除了Rails项目之外,CC.rb也支持其他项目的持续集成:Ruby项目、Java项目、.NET项目、甚至C项目。已经有数个开源项目成功应用CC.rb进行持续集成。实际上,CC.rb开发团队正在努力找出哪类项目不适合用CC.rb来持续集成,但我们目前还没有找到,反而发现用CC.rb做各种项目的持续集成都相当容易。

( 如果你想知道Ruby on Rails框架最新的代码是否健康良好,可以随时查看它的持续集成结果。)

CruiseControl.rb的未来


在即将到来的1.1版本中,CC.rb会加入多阶段构建、分布式构建等先进的持续集成理念。从正在开发的故事列表中,可以大致看出CC.rb未来的方向。

如何帮助CruiseControl.rb


CC.rb是一个非常新的开源项目。尽管我们认为它很出色,但它的功能仍然很不完善,还有很多问题存在。CC.rb需要整个社群的帮助,而你现在就可以帮助它。

你可以用5分钟来试用CC.rb,并把它介绍给你的同事和朋友。如果你遇到bug或者认为CC.rb还缺少什么功能,请报告给我们。你也可以帮助我们修复完善CC.rb。在熟悉了CC.rb的体系之后,你还可以创建你自己的CC.rb插件。当然如果你英语过硬,还可以帮助我们完善文档

让你的项目持续集成也“on Rails”,你现在就可以。
分享到:
评论
14 楼 gigix 2007-07-12  
cookoo 写道
gigix,我粗略看了一下代码,内核和svn结合得蛮紧,每5秒去检查一下svn的revision情况。有没有考虑支持别的VCS?

我记得在JIRA上有一个关于CVS的story,似乎到目前为止只支持SVN。
到了需要支持下一种版本控制的时候,自然会重构出一个结合得不紧的结构的。
13 楼 cookoo 2007-07-12  
gigix,我粗略看了一下代码,内核和svn结合得蛮紧,每5秒去检查一下svn的revision情况。有没有考虑支持别的VCS?
12 楼 gigix 2007-07-12  
hideto 写道
装了mongrel,也按照daemon/cruise说的做了,还是不能开机启动,但可以/etc/init.d/cruise start|stop启动和关闭
无奈,修改~/.bash_profile和~/.bash_logout,总算ok了

那个……要开机自动运行的话,标准的做法是把服务注册在inittab里面
http://www.netadmintools.com/html/5inittab.man.html
但是
如果你用Ubuntu Feisty的话,这帮人已经废弃了inittab,用了一个叫upstart的东西
http://upstart.ubuntu.com/
可以参考/etc/event.d/logd的格式来写upstart脚本,或者参考这个
runit的开机自动运行脚本
11 楼 hideto 2007-07-11  
装了mongrel,也按照daemon/cruise说的做了,还是不能开机启动,但可以/etc/init.d/cruise start|stop启动和关闭
无奈,修改~/.bash_profile和~/.bash_logout,总算ok了
10 楼 hideto 2007-07-11  
“daemon mode of CC.rb requires mongrel installed.”
晕阿,不早说
9 楼 gigix 2007-07-11  
问题1:在CC.rb的daemon目录下有一个cruise.sample文件,里面写了如何把CC注册成一个daemon

问题2:应该没有了。请确认你所用的smtp和用户名/密码可用。注意:CC.rb不支持ssh authentication。
8 楼 hideto 2007-07-11  
有两个问题请教:
1,在/etc/rc2.d/下写开机启动脚本不成功
#!/bin/sh
/home/hideto/cruisecontrol/cruise start -d

我配置trac和svn都是以上述办法开机后台启动的
有没有什么办法可以开机时以后台方法运行cc.rb?

2,我配置~cruise/config/site_config.rb里的smtp和projects/myproject/cruise_config.rb里的email接收者,但是还是收不到notifer邮件,是否还需要配置别的文件?能否给个配置的例子?
7 楼 gowhere 2007-05-14  
理解不了getting-started,谁来帮我解释一下...
6 楼 dongbin 2007-03-15  
好东西,看来要放弃cerberus了。
5 楼 gigix 2007-03-14  
yuxie 写道
定时构建主要考虑这样的场景:测试人员发现bug,开发人员修改后提交,但此时并不构建,因为重启服务器会让测试人员很郁闷(当然,ror不会有这个烦恼),在中午吃饭时build,成功后测试人员回归。
我们现在用luntbuild实现这个功能。

continuous integration server自己在那边build,跟测试人员有什么关系?
所谓持续集成,要求每次集成的环境是可复制的、(尽量)不受外界干扰的。如果测试人员需要一个服务器来做手工测试,把持续集成build的结果发布到另一台服务器给他们用好了。
4 楼 yuxie 2007-03-14  
定时构建主要考虑这样的场景:测试人员发现bug,开发人员修改后提交,但此时并不构建,因为重启服务器会让测试人员很郁闷(当然,ror不会有这个烦恼),在中午吃饭时build,成功后测试人员回归。
我们现在用luntbuild实现这个功能。
3 楼 ozzzzzz 2007-03-14  
yuxie 写道
发现一个细节:
CruiseControl.rb的demo上有最近的一次build信息

gigix committed the checkin
Comments:
issue # 17: add rss to builds/project_name page

但是在jira上,issue # 17 是指给 Zhang Lin的。

偶先看的jira上的这个任务,正对rss支持比较感兴趣。gigix同学接着就加上了。


不过,为什么 CruiseControl系列就是非得按照svn版本来构建,就不加一个简单的定时构建功能呢?

所以才叫持续集成

2 楼 gigix 2007-03-14  
yuxie 写道
发现一个细节:
CruiseControl.rb的demo上有最近的一次build信息

gigix committed the checkin
Comments:
issue # 17: add rss to builds/project_name page

但是在jira上,issue # 17 是指给 Zhang Lin的。

偶先看的jira上的这个任务,正对rss支持比较感兴趣。gigix同学接着就加上了。


不过,为什么 CruiseControl系列就是非得按照svn版本来构建,就不加一个简单的定时构建功能呢?

我和ZhangLin今天pair做这个
定时构建是不是真的有用呢?一个svn revision只要构建一次就够了吧。
1 楼 yuxie 2007-03-14  
发现一个细节:
CruiseControl.rb的demo上有最近的一次build信息

gigix committed the checkin
Comments:
issue # 17: add rss to builds/project_name page

但是在jira上,issue # 17 是指给 Zhang Lin的。

偶先看的jira上的这个任务,正对rss支持比较感兴趣。gigix同学接着就加上了。


不过,为什么 CruiseControl系列就是非得按照svn版本来构建,就不加一个简单的定时构建功能呢?

相关推荐

Global site tag (gtag.js) - Google Analytics