我一直在寻找Ruby on Rails的持续集成解决方案,但对结果并不太满意.我来自一个使用CruiseControl.NET的.NET商店,它的易用性和丰富的状态/报告真的被宠坏了.
理想情况下,我在寻找:
明显的Git/SVN和Test :: Unit集成
与Rake和/或Capistrano集成
显示构建状态的Web界面
失败构建的电子邮件通知.
桌面通知(可能通过Growl)
用于构建状态的REST API
插件框架,用于在UI中运行其他代码分析工具和报告结果
TALlama.. 83
我刚刚通过这里的选项,并认为我将在2011年底推出它们.
一个经过濒死体验留下的仍然链接到的网站与过时的信息和被击落的演示现场,该项目再次有生命的火花.但是文档还没有继续下去,教程中的很多步骤都很简单 ; 我不得不改变对宝石的引用,在带外构建一些东西,然后我仍然无法使它工作.
死简单:你只需下载它,运行一个命令行来添加你的项目(没有这样做的UI),并运行Rails应用程序.但是也没有用于编辑项目的UI,并且除了显示链接之外没有与构建工件的真正集成:没有运行测试的图表,没有趋势线等等.我还必须调整routes.rb
文件以获得代码链接工作(该resources :projects
行需要移动到所有其他非默认路由之下).
这看起来很棒,但薪资水平看起来并不严重.3个代理商免费,然后当你依赖时,你需要花费数百美元.个人构建看起来很棒,但没有预算.
这是一个Java伟岸,它是装载了一千选项,所以UI是混乱的,这是一个苦差事设置您的项目.但是一旦你设置了它,就可以获得大量的插件,这些插件可以从任何地方获取,运行大多数任何东西,并报告大部分内容.在OS X安装点詹金斯在/Users/Shared/Jenkins/Home
,但无法创建目录或chown
它daemon
(这是在默认情况下使用,此时应更改为新的jenkins
用户,所以你可以设置GitHub的整合).
我没有真正尝试这些,但我想我会提到为什么:
CI Joe希望拥有比我想要的更多的GitHub回购,而它的创造者甚至都没有使用它; 他们在詹金斯身上.
Cerberus看起来很小但没有UI,并且不会自动发布构建工件,而其他人可以看到它们.
BigTuna似乎是一个没有(已经很小的)社区支持的CruiseControl.rb克隆.
如果你使用JIRA和BitBucket,Bamboo看起来很整洁,但我们都没用.它确实部署了,但我们已经在Capistrano中设置了这些部署.
我们和詹金斯一起去了,但我真的希望有一个更轻量级的解决方案.
我刚刚通过这里的选项,并认为我将在2011年底推出它们.
一个经过濒死体验留下的仍然链接到的网站与过时的信息和被击落的演示现场,该项目再次有生命的火花.但是文档还没有继续下去,教程中的很多步骤都很简单 ; 我不得不改变对宝石的引用,在带外构建一些东西,然后我仍然无法使它工作.
死简单:你只需下载它,运行一个命令行来添加你的项目(没有这样做的UI),并运行Rails应用程序.但是也没有用于编辑项目的UI,并且除了显示链接之外没有与构建工件的真正集成:没有运行测试的图表,没有趋势线等等.我还必须调整routes.rb
文件以获得代码链接工作(该resources :projects
行需要移动到所有其他非默认路由之下).
这看起来很棒,但薪资水平看起来并不严重.3个代理商免费,然后当你依赖时,你需要花费数百美元.个人构建看起来很棒,但没有预算.
这是一个Java伟岸,它是装载了一千选项,所以UI是混乱的,这是一个苦差事设置您的项目.但是一旦你设置了它,就可以获得大量的插件,这些插件可以从任何地方获取,运行大多数任何东西,并报告大部分内容.在OS X安装点詹金斯在/Users/Shared/Jenkins/Home
,但无法创建目录或chown
它daemon
(这是在默认情况下使用,此时应更改为新的jenkins
用户,所以你可以设置GitHub的整合).
我没有真正尝试这些,但我想我会提到为什么:
CI Joe希望拥有比我想要的更多的GitHub回购,而它的创造者甚至都没有使用它; 他们在詹金斯身上.
Cerberus看起来很小但没有UI,并且不会自动发布构建工件,而其他人可以看到它们.
BigTuna似乎是一个没有(已经很小的)社区支持的CruiseControl.rb克隆.
如果你使用JIRA和BitBucket,Bamboo看起来很整洁,但我们都没用.它确实部署了,但我们已经在Capistrano中设置了这些部署.
我们和詹金斯一起去了,但我真的希望有一个更轻量级的解决方案.
CruiseControl.rb怎么样?
同样的人群CruiseControl
(思想工作)和写作Ruby
.非常容易使用Rake
以集成您的其他工具,并可以使用ruby-growl gem进行通知.
您可能还想考虑哈德森.它设计用于Java项目,尽管有很多插件可用,包括对Ruby和Rake的支持.它有一个非常有用的网络界面,支持电子邮件通知以及许多其他(如twitter或巨型熊灯).
该社区也非常活跃,有几篇关于使用Selenium连接Hudson的文章,您可能对在浏览器端测试Rails应用程序有所帮助.
另外一个是Team City,它可以免费用于小型项目和团队(包括商业).我非常喜欢Team City,并且之前已经将它用于其他项目,但目前我们正在使用Mercurial进行源代码控制,而Team City的支持在我们考虑它的时候有点过于测试.
我从CruiseControl.net切换到Team City,对改进感到非常震惊.我偏爱Hudson,因为它具有相似的功能集和非常活跃的社区.
Circle是Rails(和其他Web应用程序)的高级CI服务.从您的列表中,它支持以下内容:
Git和Test ::单元集成(也是RSpec,Cucumber,Jasmine,Konacha集成,并支持任意额外的测试命令)
与Rake和/或Capistrano集成(使用Rake运行命令并设置DB,支持使用Capistrano或Heroku进行连续部署,或者任何真正的东西)
显示构建状态的Web界面
失败构建的电子邮件通知.
桌面通知(通过CCMenu/CCTray)
用于构建状态的REST API
用于在UI中运行其他代码分析工具和报告结果的插件框架(我们可以运行任意命令和支持,包括作为构建的一部分的状态)
Joel和我在Stackoverflow播客上花了一段时间聊聊这个 - 看看吧!
(编辑)免责声明:Paul Biggar在他的Stackoverflow简介中声明了Circle
Semaphore是一个用于Ruby和Rails应用程序的新托管CI应用程序.它与GitHub集成,无需设置,并具有简单的用户界面.
Drone.io缺乏开发,所以我切换到Codeship,我非常享受它.它积极开发和改进,设计精良,速度非常快.此外,对于底层,它实际上是免费的(每月最多100个版本),所以它最终比Drone.io便宜.
原始答案我只需使用http://drone.io/设置我们的主要Ruby on Rails应用程序.是一块蛋糕,它有一个很棒的界面.如果您正在寻找一个简单的托管解决方案,我会说值得一试.
查看Tddium.Tddium支持Ruby应用程序的持续集成,部署和交互式测试.它提供了一个托管环境,支持Selenium,Headless Webkit和Solr.它托管实时Postgres,MySQL,Mongo和Redis实例.它自动并行化大型测试套件.
Travis CI在红宝石世界中变得流行:http://travis-ci.org/
cruisecontrol.rb将是完美的匹配.
http://cruisecontrolrb.thoughtworks.com/
像许多人一样,我是cruisecontrol.rb的忠实粉丝,但最近我将项目转为Integrity.
轻巧,易于设置(很像cc.rb),但界面更好.
BigTuna - 用Ruby编写,使用Rails并将自己用作CI.
你可以给Codeship一个旋转,看看它是否适合你(我是创始人之一)
基于云的持续集成和部署(具有特殊的Heroku支持)
您的前四个项目已经实施,并且适用于许多公司
明显的Git/SVN和Test :: Unit集成
与Rake和/或Capistrano集成
显示构建状态的Web界面
失败构建的电子邮件通知.
我们正在研究这些功能:
桌面通知(可能通过Growl)
用于构建状态的REST API
插件框架,用于在UI中运行其他代码分析工具和报告结果