我一直在寻找Ruby on Rails的持续集成解决方案,但对结果并不太满意。我来自一家使用CruiseControl.NET的.NET商店,它的易用性和丰富的状态/报告真的被宠坏了。
理想情况下我正在寻找:
明显的Git / SVN和Test :: Unit 集成
与Rake和/或集成 Capistrano的
显示状态的网络界面 构建
失败版本的电子邮件通知。
桌面通知(可能 通过低吼)
用于构建状态的REST API
用于在UI中运行其他代码分析工具和报告结果的插件框架
答案 0 :(得分:83)
我刚刚通过这里的选项,并认为我将在2011年底推出它们。
在濒死体验之后,仍然链接到website 过时的信息并击败了演示网站,此项目有一个火花生命再次。但是文档还没有继续下去,教程中的很多步骤都很简单;我不得不改变对宝石的引用,在带外构建一些东西,然后我仍然无法使其工作。
死简单:您只需下载它,运行命令行添加您的项目(无UI 这样做),并运行Rails应用程序。但是也没有用于编辑项目的UI,除了显示链接之外,没有与构建工件的真正集成:你没有得到测试运行的图表,没有趋势线等等。我也有调整routes.rb
文件以使代码链接起作用(resources :projects
行需要移动到所有其他非默认路由之下)。
这看起来很棒,但薪资水平看起来并不严重。 3个代理商免费,然后当你依赖时,你需要花费数百美元。 个人构建看起来很棒,但没有预算。
这是一个Java坚定不移的加载了一千个选项,因此用户界面令人困惑,这是一个苦差事来设置你的项目< / strong>即可。但是一旦你设置了它,就会得到一个全部插件,它可以从大多数地方拉出来,运行大多数东西,并报告大部分内容。 OS X安装程序将Jenkins指向/Users/Shared/Jenkins/Home
但未能创建该目录,或chown
将其创建为daemon
(默认情况下使用该目录,您应该更改为新的jenkins
用户,这样你就可以设置GitHub集成。)
我没有真正尝试这些,但我想我会提到原因:
我们选择了Jenkins,但我真的希望有一个更轻量级的解决方案。
答案 1 :(得分:41)
CruiseControl.rb怎么样?
同样的人群CruiseControl
(思考)并写在Ruby
。非常容易使用Rake
来集成您的其他工具,并可以使用ruby-growl gem来发送通知。
答案 2 :(得分:27)
您可能还想考虑Hudson。它设计用于Java项目,尽管有很多插件可用,包括对Ruby和Rake的支持。它有一个非常有用的网络界面,支持电子邮件通知以及许多其他(如twitter或巨型熊灯)。
社区也非常活跃,并且已经several articles使用Selenium连接Hudson,您可能有助于在浏览器端测试Rails应用程序。
另一个看法是Team City,对小型项目和团队(包括商业)免费。我非常喜欢Team City,并且之前已经将它用于其他项目,但目前我们正在使用Mercurial进行源代码控制,而Team City的支持在我们考虑它时有点过于测试。
我从CruiseControl.net切换到Team City,对改进感到非常震惊。我偏爱Hudson,因为它具有相似的功能集和非常活跃的社区。 p>
答案 3 :(得分:14)
Circle是advanced CI service for Rails(以及其他网络应用)。从您的列表中,它支持以下内容:
Joel和我在Stackoverflow podcast - check it out上花了一段时间聊聊这个!
(编辑)免责声明:Paul Biggar在他的Stackoverflow个人资料中陈述了Circle,
答案 4 :(得分:8)
Drone.io缺乏开发,所以我切换到Codeship,我非常享受它。它积极开发和改进,设计精良,速度非常快。另外,对于底层,它实际上是免费的(每月最多100个版本),所以它最终比Drone.io便宜。
我只使用http://drone.io/设置我们的主要Ruby on Rails应用程序。是一块蛋糕,它有一个很棒的界面。如果您正在寻找一个简单的托管解决方案,我会说值得一试。
答案 5 :(得分:8)
Semaphore是适用于Ruby和Rails应用的新托管CI应用。它与GitHub集成,无需设置,并具有简单的用户界面。
答案 6 :(得分:7)
Travis CI在红宝石世界中变得流行:http://travis-ci.org/
答案 7 :(得分:7)
结帐Tddium。 Tddium支持Ruby应用程序的持续集成,部署和交互式测试。它提供了一个托管环境,支持Selenium,Headless Webkit和Solr。它托管实时Postgres,MySQL,Mongo和Redis实例。它自动并行化大型测试套件。
答案 8 :(得分:6)
cruisecontrol.rb将是当时的完美搭档。
答案 9 :(得分:6)
像许多人一样,我是cruisecontrol.rb的忠实粉丝,但最近我将项目转换为Integrity。
轻巧且易于设置(非常类似于cc.rb),但具有更好的界面。
答案 10 :(得分:5)
你可以给Codeship一个旋转,看看它是否适合你(我是其中一位创始人)
基于云的持续集成和部署(具有特殊的Heroku支持)
您的前四个项目已经实施,并且适用于多家公司
我们正在研究这些功能:
答案 11 :(得分:5)
BigTuna - 用Ruby编写,使用Rails并将自己用作CI。
答案 12 :(得分:3)
诚信似乎是一个很好的解决方案。部署到heroku是一件轻而易举的事: http://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity http://integrityapp.com
答案 13 :(得分:3)
自己动手。编写一个bash脚本来运行测试,然后在测试通过时运行部署过程。需要通知?在成功/失败时拍摄自己的明文电子邮件。需要调度程序?的cronjob。这是0美元/月,您将了解自己在做什么。我不知道如果付给别人40美元/月的费用会帮助我以更高效的方式做到这一点。
例如考虑:由于资源管道配置不正确,我的部署失败(资产无法预编译)。这不会被单元,功能,集成,回归或任何其他测试所捕获。 CI不会捕获此错误。我花在编写bash脚本上的时间可能少于我花在设置CI环境上的时间,而且我将节省40美元/月。
Juuuuuust把我的两便士投入讨论; )
答案 14 :(得分:3)
这里没人提到Atlassian的竹子。有一篇很好的教程文章,关于使用Bamboo的Ruby on Rails CI:
http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html
答案 15 :(得分:3)
答案 16 :(得分:1)
我只喜欢CI乔,我和其他所有人都有问题, CI Joe是完成工作的最低要求, 超级敏捷,可靠。哈德逊的来源太可怕了, 用户界面不吸引我。
答案 17 :(得分:1)
答案 18 :(得分:1)
运行代码运行 可能就是你所需要的。
编辑: 链接已删除,因为它不再引用以前的运行代码运行站点。
答案 19 :(得分:0)
我刚为它配置了Hudson / Jenkins。 ci_reporter gem可以帮助格式化JUnit输出,Hudson所期望的,Hudson有一个Rails插件,所以我可以看到rcov覆盖,测试报告,rails stats甚至更多。
答案 20 :(得分:0)
如果您订阅“经常提交”的理念,那么在每次提交后运行CI似乎相当昂贵。如何每隔几个小时运行一个简单的cronjob并将结果通过电子邮件发送到开发邮件列表?
答案 21 :(得分:0)
我刚刚为RubyOnRails + SVN / GIT发布了一个非常简单的持续集成应用程序。也许你应该尝试一下:
http://github.com/felipegiotto/Inotegration/tree/master
我采用了一些测量和测试工具的想法,在尝试了一些CI工具而不喜欢其中任何一个之后,我决定构建自己的工具,而不需要构建大的XML文件或任何其他配置。就像Rails一样。
如果您愿意,请给我一些反馈意见..
致以最诚挚的问候,
Felipe Giotto。
答案 22 :(得分:0)
您也应该考虑查看CloudMunch。这提供了一个多语言平台,允许您将不同的语言作为代码库的一部分,具有丰富的构建元数据集。