Ruby on Rails 的持续集成? ?

我一直在寻找一个用于 Ruby on Rails 的持续集成解决方案,但是结果并不令人满意。我来自一个。NET 商店,使用 cruisecontrol.NET ,真的被它的易用性和丰富的状态/报告宠坏了。

理想情况下,我要找的是:

  • 显而易见的 Git/SVN 和 Test: : Unit 积分

  • 与 Rake 和/或集成 卡皮斯特拉诺

  • 显示状态的网页界面 对于构建

  • 生成失败的电子邮件通知。

  • 桌面通知(可能 通过咆哮)

  • 用于构建状态的 REST API

  • 用于在 UI 中运行其他代码分析工具和报告结果的插件框架

40894 次浏览

CruiseControl.rb呢?

同样的人做 CruiseControl(思想工作)和写在 Ruby。非常容易使用 Rake集成您的其他工具,并且可以使用 红宝石咆哮 gem 为您的通知。

Cruisecontrol.rb 会是完美的匹配。

Http://cruisecontrolrb.thoughtworks.com/

您可能还需要考虑 哈德森。它是为 Java 项目设计的,尽管有很多插件可供选择,包括对 Ruby 和 Rake 的支持。它有一个非常有用的网页界面,并支持电子邮件通知以及其他许多(如 twitter,或巨型熊灯)。

这个社区也非常活跃,有一个关于将 Hudson 与 Selenium 连接起来的 几篇文章,您可能会对在浏览器端测试 Rails 应用程序有所帮助。

另一个看看是 城市队是免费的小项目和团队(包括商业)。我真的很喜欢 Team City,并且以前在其他项目中使用过它,但是目前我们正在使用 Mercurial 进行源代码控制,而且在我们考虑的时候,Team City 的支持有点太 beta 了。

我从 cruisecontrol.net 切换到了城市队,对这种进步感到非常震惊。我偏爱 Hudson,因为它有类似的功能集和非常活跃的社区。

和很多人一样,我也是 cruisecontrol.rb 的忠实粉丝,但最近我把我的项目转到了 正直

轻量级,易于安装(非常类似 cc.rb) ,但具有更好的界面。

运行代码运行 也许正是你需要的。

编辑: 链接删除,因为它不再引用前运行代码运行站点。

我刚刚为 RubyOnRails + SVN/GIT 发布了一个非常简单的持续集成应用程序。也许你应该试一试:

Http://github.com/felipegiotto/inotegration/tree/master

我采用了一些测量和测试工具的想法,在尝试了一些 CI 工具并且不喜欢其中的任何一个之后,我决定构建自己的工具,而不需要构建大的 XML 文件或任何其他配置。Rails 就是这样的。

如果你愿意,请给我一些反馈. 。

最好的问候,

Felipe Giotto.

如果您遵循“经常提交”的哲学,那么在每次提交后运行 CI 似乎相当昂贵。每隔几个小时运行一次简单的 cronjob 并将结果发送到开发人员邮件列表如何?

这里没有人提到 Atlassian 的竹子,有一篇类似教程的文章介绍了 Ruby on Rails CI 如何使用竹子:

Http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html

然后是 总督察 Joe:

它就像一辆生锈的旧皮卡: 它可能很臭,很恶心,但它能完成任务。

我们每天都用。

BigTuna -用 Ruby 编写,使用 Rails 并使用它自己作为 CI。

诚信似乎是一个很好的解决方案。部署到 heroku 是一件轻而易举的事情: Http://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity Http://integrityapp.com

我刚为它配置了一个 Hudson/Jenkins。Ci _ porter gem 可以帮助格式化 JUnit 输出,这是 Hudson 所期望的,而 Hudson 有一个 Rails 插件,因此我可以看到 rcov 覆盖率、测试报告、 Rails 统计数据等等。

看看 Tddium。Tddium 支持 Ruby 应用程序的持续集成、部署和交互式测试。它提供了支持 Selenium、 Headless Webkit 和 Solr 的托管环境。它托管 Postgres、 MySQL、 Mongo 和 Redis 实例。并且它自动并行化大型测试套件。

我刚刚浏览了一下这里的选项,觉得我应该在2011年底前把它们整理出来。

正直

经过一个 濒死经验,仍然链接到 网站过时的资料和下降的演示现场,这个项目有一个生命的火花再次。但是文档没有更新,而且还有很多很多的 教程中的步骤是完全错误的; 我必须更改对 gem 的引用,在 band 之外构建一些东西,然后是 我还是不能修好它

巡航控制中心

非常简单 : 您只需下载它,运行一个命令行来添加您的项目(这样做有 没有用户界面) ,然后运行 Rails 应用程序。但是也没有用于编辑项目的 UI,而且除了显示链接之外,还有 与构建工件没有真正的集成: 没有测试运行的图表,没有趋势线等等。我还必须调整 routes.rb文件以使代码链接正常工作(resources :projects行需要移动到所有其他非默认路由的下方)。

团队城市

这是 看起来棒极了,但是工资标准看起来不正常。3个代理人免费,然后当你依赖你需要发放数百美元。个人建筑看起来不错,但是 没有预算

詹金斯 (née 哈德森)

这是 Java 的坚定支持者,它是 装满了上千种选择,所以是 用户界面很混乱,它是 建立你的项目。但是一旦你设置了它,你就会得到一个 很多插件,它可以从大多数地方提取,运行大多数任何东西,并报告大多数任何东西。OS X 安装程序将 Jenkins 指向 /Users/Shared/Jenkins/Home,但是没有将该目录或 chown创建到 daemon(这是默认使用的,您应该更改为新的 jenkins用户,以便可以设置 GitHub 集成)。

其他人

我并没有真正尝试过这些,但是我想我应该告诉你为什么:

选择

我们选择了 詹金斯,但我真的希望其中一个轻量级的解决方案能够奏效。

我只喜欢乔探员,其他人我都不喜欢, 总督察乔是完成任务的最低要求, 超级敏捷和可靠。哈德逊的来源是可怕的, 用户界面对我没有吸引力。

特拉维斯 CI 已成为红宝石世界流行: http://travis-ci.org/

Semaphore 是一个针对 Ruby 和 Rails 应用程序的新的托管 CI 应用程序。它与 GitHub 集成,不需要设置,并且有一个简单的 UI。

你可以尝试一下 密码,看看它是否适合你(我是创始人之一)

基于云的持续集成和部署(特殊 Heroku 支持)

您的前四个项目已经实现,并且在许多公司都可以很好地工作

  • 显而易见的 Git/SVN 和 Test: : Unit 集成
  • 与 Rake 和/或 Capistrano 的集成
  • 显示构建状态的 Web 界面
  • 生成失败的电子邮件通知。

我们也在开发这些功能:

  • 桌面通知(可能通过咆哮)
  • 用于构建状态的 REST API
  • 用于在 UI 中运行其他代码分析工具和报告结果的插件框架

Circle 是一个 铁路高级线路保养服务(和其他网络应用程序):

  • Git 和 Test: : Unit Integration (还有 RSpec,Cucumber,Jasmine,Konacha 集成,并支持任意额外的测试命令)
  • 与 Rake 和/或 Capistrano (使用 Rake 运行命令并设置 DBs,支持使用 Capistrano 或 Heroku 或任何其他工具进行连续部署)的集成
  • 显示构建状态的 Web 界面
  • 生成失败的电子邮件通知。
  • 桌面通知 (通过 CCMenu/CCTray)
  • 用于构建状态的 REST API
  • 用于在 UI (我们可以运行任意命令,并支持将其状态作为构建的一部分)中运行其他代码分析工具和报告结果的插件框架

Joel 和我在 堆栈溢出播客-看看这个上聊了一会儿!


(编辑)免责声明: 保罗比格成立圆圈,因为他在他的 Stackoverflow 配置文件

2015年2月更新

密码

Drone.io 缺乏开发,所以我转到了 Codeship,我非常喜欢它。它积极开发和改进,具有很好的设计和非常快的速度。另外,对于底层来说,它实际上是免费的(每月最多100个版本) ,所以它最终比 Drone.io 便宜。

原始答案

无人机,我来了

我刚刚用 http://drone.io/设置了我们的 Ruby on Rails 主应用程序。小菜一碟,界面也很棒。如果你在找 简单的托管解决方案的话,我觉得值得一试。

你自己来。编写 bash 脚本来运行测试,如果测试通过,则运行部署过程。需要通知吗?给自己发一封关于成功/失败的明文电子邮件。需要调度器吗?骗子。这是0美元/月,你将有一个线索,你正在做什么。我不认为支付别人40美元/月将帮助我做到这一点在任何方式更有效率。

例如: 我的部署失败是因为配置不正确的资产管道(资产无法预编译)。单元测试、功能测试、集成测试、回归测试或任何其他测试都不会捕捉到这种情况。CI 不会发现这个错误。我花在编写 bash 脚本上的时间可能比我花在设置 CI 环境上的时间要少,而且我可以为自己每月节省40美元。

把我的两便士投入到讨论中去;)

您还应该考虑使用 CloudMunch。这提供了一个多语言平台,允许您将不同的语言作为代码库的一部分,并使用丰富的构建元数据集。