Ruby on Railsの継続的な統合?[閉まっている]


149

Ruby on Railsの継続的インテグレーションソリューションを探して回りましたが、結果に満足していません。私はCruiseControl.NETを使用している.NETショップから来ましたが、使いやすさと豊富なステータス/レポート機能にひどく甘やかされていました。

理想的には私が探しています:

  • 明らかなGit / SVNとTest :: Unitの統合

  • Rakeおよび/またはCapistranoとの統合

  • ビルドのステータスを示すWebインターフェイス

  • 失敗したビルドの電子メール通知。

  • デスクトップ通知(場合によってはGrowlを介して)

  • ビルドステータス用のREST API

  • 他のコード分析ツールを実行し、UIで結果を報告するためのプラグインフレームワーク


11
では、3年後の今、あなたの選択は何ですか?
Andrei

3
circleci.comを提案できますか?
Paul Biggar、2012年

回答:


83

ここでオプションを確認したところ、2011年後半にそれらをロールアップすると思いました。

誠実さ

リンクが張られたままのWebサイト古い情報が残ってデモサイトがダウンしたという臨死体験の後、このプロジェクトは再び活気に満ちています。しかし、ドキュメントはまだ進んでおらず、チュートリアルの多くのステップは単純に壊れています。私は宝石への参照を変更し、いくつかのことを帯域外で構築しなければならず、それでもそれを機能させることができませんでした

Cruise Control.rb

非常にシンプル:ダウンロードし、コマンドラインを実行してプロジェクトを追加し(そうするためのUIはありません)、Railsアプリを実行します。しかし、プロジェクトを編集するためのUIもありません。また、リンクへのリンクを表示することを除いて、ビルドアーティファクトとの実際の統合はありません。テスト実行のグラフやトレンドラインはありません。また、routes.rbファイルを調整して、コードリンクが機能している(resources :projectsラインは他のすべてのデフォルト以外のルートの下に移動する必要があります)。

TeamCity

これはすばらしく見えますが、賃金表はとんでもないようです。3つのエージェントが無料で、依存している場合は数百ドルを支払う必要があります。パーソナルビルドは見栄えは良いですが、予算ありません

ジェンキンス(旧ハドソン

これはJavaの堅実なものであり、1000のオプションロードされているため、UI はわかりにくく、プロジェクトを設定するのは面倒です。しかし、いったん設定すると、ほとんどの場所から取得し、ほとんどすべてを実行し、ほとんどすべてを報告できるプラグインたくさん入手できます。OS Xインストーラがでジェンキンスを指し/Users/Shared/Jenkins/Homeますが、そのディレクトリまたは作成に失敗chownすることdaemon(デフォルトで使用され、そして、あなたは新しいに変更する必要がありjenkinsますが、GitHubの統合を設定することができますので、ユーザ)。

その他

私は実際にこれらを試したわけではありませんが、理由を述べようと思いました:

  • CI Joeは、私が望んでいる以上にGitHubリポジトリを所有したいと考えており、その作成者はそれを使用していません。彼らはジェンキンスにいる。
  • ケルベロスは見た目は小さいようですが、UIがなく、ビルドアーティファクトが他の人に見える場所に自動的に公開されません。
  • BigTunaは、CruiseControl.rbのクローンのようで、(すでに最小限の)コミュニティサポートはありません。
  • JIRAとBitBucketを使用する場合、Bambooは本当にきれいに見えますが、どちらも使用しません。デプロイはできますが、すでにカピストラーノにセットアップされています。

選択肢

私たちはJenkinsを使用しましたが、軽量化ソリューションの1つがうまく機能したことを本当に望みます。


8
トラビスはどうですか?
Vanuan

3
私はクローズドソースのプロジェクトに取り組んでいるので、彼らの(不適切な言葉)のドキュメントを誤解しない限り、Travisは私たちにとって本当に選択肢ではありません(私たちがGitHubプロジェクトへの書き込みアクセスを許可しているわけではありません)。いくつかの宝石を書いていたら、すぐにTravisにジャンプしますが、実際のRailsサイトではありません。
TALlama

2
参考までに、Travis CIはまもなくベータ版のPRO(有料およびプライベート)バージョンをリリースする予定です。小規模なプロジェクトの場合、月額129ドルと249ドルと少し高く
Joshua Pinter

41

どの程度CruiseControl.rb

と同じ群衆CruiseControl(思考)とで書かれましたRubyRake他のツールを統合するために非常に使いやすく、通知にruby-growl gemを使用できます。


これをWindowsで実行するのに苦労しました...サイトの「簡単ではない」というビデオで宣伝されているように機能しませんでした。
岐阜

私は、thoughtworksのブランディングに左右されることはありません-メリットを判断してください。
Dafydd Reesが2010年

このプロジェクトは、ごく最近になって維持していると、2009年から新しいバージョンをリリースしていない...しかし、それは動作します...
スコットSchulthess

3
cruisecontrolは非常に原始的で非常に古くなっています。
ブラッグボーイ、

1
2月上旬(2013年)までのさまざまなセキュリティ関連のイベントを考えると、CruiseControl.rbをデフォルトの構成(Gemバージョンなど)のままにしておくことは無意味です。Rails 3.0.20で実行することはできましたが、3.2.11以降ではかなり多くの作業が必要になるようです。この時点で、私は非常にジムFioratoのに非常によく似要件リストで、選択肢にオープン。
ジェフディッキー

27

Hudsonを検討することもできます。RubyとRakeのサポートを含む利用可能なプラグインの素晴らしい選択がありますが、Javaプロジェクトで使用するために設計されています。これは非常に便利なWebインターフェースを備えており、電子メール通知だけでなく、その他の多くの機能(Twitterや巨大なクマのランプなど)をサポートしています。

コミュニティーも非常に活発で、HudsonをSeleniumに接続することに関するいくつかの記事があり、ブラウザー側でのRailsアプリケーションのテストに役立つ場合があります。

もう1つは、小規模なプロジェクトやチーム(コマーシャルを含む)が無料で利用できるTeam Cityです。私はチームシティが本当に好きで、以前は他のプロジェクトで使用していましたが、現在ソース管理にMercurialを使用しており、チームシティのサポートを検討しているときは少しベータ版でした。

私はCruiseControl.netからTeam Cityに切り替えましたが、その改善には本当にショックを受けました。似たような機能セットと非常に活発なコミュニティのために、私はハドソンに部分的です。


2
TCの+1。私が今まで見た中で最高のCIを伝えます
Matt Briggs

4
オラクルとの独創的な違いと呼んでいるため、ハドソンにはいくつかの政治的な問題が発生していることに注意してください。開発者の大部分は、Jenkinsと呼ばれるフォークとともに動いているようです。オラクルにはスタッフがおり、ハドソンのサポートと開発を継続します。
dondo '31年

4
良い点どんど。Hudsonの継続的な開発の追跡に関心のある方は、jenkins-ci.orgで
Julian

JenkinsとHudsonの開発活動の比較を次に示し
p

13

Circleは、Rails(およびその他のWebアプリ)用の高度なCIサービスです。あなたのリストから、それは以下をサポートします:

  • GitとTest :: Unitの統合RSpec、Cucumber、Jasmine、Konachaの統合、および任意の追加のテストコマンドもサポート
  • Rakeおよび/またはCapistranoとの統合Rakeを使用してコマンドを実行し、DBをセットアップし、CapistranoやHeroku、または実際には何でも使用する継続的なデプロイメントをサポートします
  • ビルドのステータスを示すWebインターフェイス
  • 失敗したビルドの電子メール通知。
  • デスクトップ通知CCMenu / CCTray経由
  • ビルドステータス用のREST API
  • 他のコード分析ツールを実行し、UIで結果を報告するためのプラグインフレームワークビルドの一部としてのステータスを含む任意のコマンドとサポートを実行できます

Joelと私はStackoverflowポッドキャストでこれについてチャットしながらしばらく時間を過ごしました- チェックしてください!


(編集)免責事項:Paul BiggarはStackoverflowプロファイルで述べているようにCircleを設立しました


8

セマフォは、RubyおよびRailsアプリ用の新しいホスト型CIアプリです。GitHubと統合し、セットアップは必要なく、シンプルなUIを備えています。


CIスイートの一部としてセマフォを使用しており、それは素晴らしい働きをします。JasmineやHipChatなどの他のソフトウェアとどのように統合されているかは、私たちのブログ投稿の 1つで確認できます。opは、展開ツールとしてのCapistranoの使用についても言及しました。以前は使っていましたが遅すぎたのでミナに切り替えました。
denis.arunovic 2014

8

2015年2月更新

コードシップ

Drone.ioの開発が不足していたので、Codeshipに切り替えて、それを完全に楽しんでいます。積極的に開発、改良されており、優れたデザインと非常に高速です。さらに、最下層では実際には無料(1か月あたり最大100ビルド)であるため、Drone.ioよりも安価になりました。

元の回答

Drone.io

メインのRuby on Railsアプリケーションをhttp://drone.io/でセットアップしました。簡単なもので、すばらしいインターフェースを備えています。簡単なホスト型ソリューションを探しているなら、ぜひチェックしてみてください。


7

Tddiumをチェックしてください。Tddiumは、Rubyアプリケーションの継続的な統合、デプロイメント、インタラクティブテストをサポートしています。Selenium、Headless Webkit、Solrをサポートする管理環境を提供します。ライブPostgres、MySQL、Mongo、Redisインスタンスをホストします。また、大規模なテストスイートを自動的に並列化します。


5
ジェイ、tddiumとsolano labsとの関係を公開したいかもしれません。パーよくある質問:「あなたは、あなたの答えであなたの所属を開示しなければならない」
TGF

7

Travis CIはルビーの世界で人気を博しています:http : //travis-ci.org/


Travis CIはオープンソースプロジェクトには適していますが、実際にはクローズドソースプロジェクトには適していません。Jenkinsは両方のケースをカバーできます:-)
Gabor Garami

1
しかし、オープンソースではありませんか?github.com/travis-ci/travis-ci jenkinsの場合のように、プライベートtravisインスタンスをセットアップするだけではいいのではないですか?
バヌアン、2012年

おそらく可能ですが、Readmeでは、これは推奨されておらず、プライベートホスティングにはまだ適していないと述べています。
Andrew

これは、閉じたプロジェクトのために今も元気だ
aehlke


6

多くの人と同様に、私はcruisecontrol.rbの大ファンでしたが、最近、プロジェクトをIntegrityに切り替えました。

軽量でセットアップが簡単(cc.rbによく似ています)ですが、インターフェースが優れています。


5
Integrityをセットアップしようとしたところ、混乱しました。
ローレンス

5

BigTuna -Rubyで記述され、Railsを使用し、CIとしてそれ自体を使用します。


3
BigTunaのappelier.comリンクは、期限切れのドメインへのデッドリンクであることに注意してください。プロジェクトはGithubにあります。
ジェフディッキー

5

コードシップ試してみてうまくいくかどうかを確認できます(私は創設者の1人です)

クラウドベースの継続的な統合と展開(特別なHerokuサポート付き)

アイテムの最初の4つはすでに実装されており、多くの企業で問題なく機能します

  • 明らかなGit / SVNとTest :: Unitの統合
  • Rakeおよび/またはCapistranoとの統合
  • ビルドのステータスを示すWebインターフェイス
  • 失敗したビルドの電子メール通知。

私たちはこれらの機能にも取り組んでいます:

  • デスクトップ通知(場合によってはGrowlを介して)
  • ビルドステータス用のREST API
  • 他のコード分析ツールを実行し、UIで結果を報告するためのプラグインフレームワーク


3

整合性は優れたソリューションのようです。herokuへのデプロイは簡単です:http ://elabs.se/blog/7-continuous-integration-testing-for-ruby-on-rails-with-integrity http://integrityapp.com


3

自分でやれ。テストを実行するbashスクリプトを記述し、テストに合格した場合はデプロイメントプロシージャを実行します。通知が必要ですか?成功/失敗の平文のメールを自分で撃ちます。スケジューラが必要ですか?Cronjob。これは月額$ 0 /で、自分が何をしているかの手掛かりが得られます。私は誰かに月額40ドルを支払うことで、これをより効率的に行うのにどのように役立つかわかりません。

たとえば、アセットパイプラインが正しく構成されていないためにデプロイメントが失敗する(アセットがプリコンパイルに失敗する)場合を考慮してください。これは、単体テスト、機能テスト、統合テスト、回帰テスト、またはその他のテストでは捕捉されません。このエラーはCIによってキャッチされません。bashスクリプトの作成に費やす時間は、CI環境のセットアップに費やす時間よりも短い可能性が高く、月額40ドル節約できます。

Juuuuuustが私の2セントをディスカッションに投入しました。)



1

そして、CI Joeがいます:

それは古い錆びたピックアップトラックのようなものです。臭くてひどいかもしれませんが、それで仕事は完了です。

日常的に使用しています。


1

私はCIジョーだけが好きです。残りのすべてで問題が発生しました。CIジョーは、仕事を遂行するための絶対的な最低要件であり、超アジャイルで信頼性があります。ハドソンのソースは恐ろしいものであり、UIは私にとって魅力的ではありません。


0

RubyOnRails + SVN / GIT用の非常にシンプルな継続的統合アプリケーションを公開しました。多分あなたはそれを試してみる必要があります:

http://github.com/felipegiotto/Inotegration/tree/master

私は測定ツールとテストツールのいくつかのアイデアを取り入れ、いくつかのCIツールを試してみて、それらのどれも好きではなかったので、大きなXMLファイルやその他の構成を構築する必要なく、独自のツールを構築することにしました。Railsの本来の姿。

よろしければ、フィードバックを送ってください。

宜しくお願いします、

フェリペジョット。


0

「頻繁にコミットする」という哲学に同意すると、すべてのコミット後にCIを実行するのはかなり負荷がかかります。数時間ごとに簡単なcronjobを実行して、その結果を開発者メーリングリストにメールで送信しませんか?


または、1時間に1回だけ変更をポーリングするようにCIサーバーをセットアップするのはどうですか?ほとんどのCIアプリはこの設定をサポートしています。
jerhinesmith

2
gitでは頻繁にコミットできますが、ほとんどプッシュしません。
Vanuan

0

Hudson / Jenkinsを構成しました。ci_reporter gemは、Judの出力をフォーマットするのに役立ちます。これはHudsonが期待するものであり、HudsonにはRailsプラグインがあるため、rcovカバレッジ、テストレポート、rails統計などを確認できます。


あなたの設定を他の選択肢と比較できますか?
Andrei

私のプロダクションプロジェクトではRails 2.3.xを使用しているため、現在は使用していません。他のほとんどの代替手段ではRails 3.xが必要だからです。ただし、可能な場合はテストして、自分の経験を公開します。
ガボールガラミ2011年

JenkinsをRails 3.xでも試しましたが、非常にうまく機能します。他のソリューション(IntegrityAppなど)も試してみましたが、Jenkinsを使用して別のプロジェクトをテストしたため、それが最終的なソリューションになりました。IntegrityAppや他のものが悪いという意味ではありません。IntegrityAppは非常に良いものですが、Jenkinsがもう少し好きです。
Gabor Garami

0

CloudMunchも検討する必要があります。これにより、豊富なビルドメタデータのセットを使用して、コードベースの一部としてさまざまな言語を使用できるポリグロットプラットフォームが提供されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.