web-dev-qa-db-ja.com

Ruby on Railsの継続的な統合?

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

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

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

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

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

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

  • デスクトップ通知(潜在的にGrowlを介して)

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

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

149
Jim Fiorato

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

完全性

死にかけた体験の後、まだリンクされている website with古くなった情報とデモサイトがダウンしたため、このプロジェクトのspark=人生は再びです。しかし、ドキュメントは動きませんでした。 チュートリアルの手順は単純に壊れています;私はgemsへの参照を変更し、帯域外でいくつかのものを構築し、私はまだそれを動作させることができませんでした

Cruise Control.rb

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

TeamCity

これは素晴らしく見えますが、賃金表は大したものではないようです。 3人のエージェントが無料で、依存しているときに数百ドルを負担する必要があります。 Personal Buildsは素晴らしく見えますが、予算を持っていません

ジェンキンス (née ハドソン

これはJava stalwartであり、)千のオプションがロードされているため、UIはわかりにくいであり、プロジェクトをセットアップするのは日課です全体のプラグインを取得し、ほとんどどこからでも引き出し、ほとんどすべてを実行し、ほとんどすべてを報告できます。OSXインストーラーは、Jenkinsを/Users/Shared/Jenkins/Homeが、そのディレクトリの作成に失敗するか、chownからdaemonになります(デフォルトで使用されます。GitHubをセットアップするには、新しいjenkinsユーザーに変更する必要があります統合)。

その他

私は実際にこれらを試していないが、理由を述べると思った:

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

選択肢

Jenkins を使用しましたが、より軽量なソリューションの1つがうまくいったことを願っています。

83
TALlama

CruiseControl.rb についてはどうですか?

CruiseControl(thoughtworks)を行い、Rubyで書かれた同じ群衆。非常に簡単にRakeを使用して他のツールを統合し、通知に Ruby-growl gemを使用できます。

41
craigb

Hudson を検討することもできます。 Javaプロジェクトで使用するように設計されていますが、RubyおよびRakeのサポートを含む、利用可能なプラグインの選択肢が豊富にあります。インターフェースを提供し、メール通知だけでなく、他の多くの機能(Twitterや巨大なクマのランプなど)もサポートしています。

コミュニティも非常に活発で、HudsonをSeleniumに接続する際に 複数の記事 がありました。これは、ブラウザ側のアプリケーションのテストに役立つかもしれませんRails.

別の見方は Team City です。これは小規模なプロジェクトやチーム(商用を含む)には無料です。私はTeam Cityが本当に好きで、以前は他のプロジェクトで使用していましたが、現在、ソース管理にMercurialを使用しています。TeamCityのサポートは、検討中のベータ版でした。

CruiseControl.netからTeam Cityに切り替えたところ、改善にまったくショックを受けました。似たような機能セットと非常に活発なコミュニティのために、私はハドソンに不満を感じています。

27
Julian

CircleRailsの高度なCIサービス (およびその他のWebアプリ)です。リストから、次をサポートしています。

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

Joelと私は Stackoverflowポッドキャスト - チェックアウト


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

14
Paul Biggar

セマフォ は、RubyおよびRailsアプリ。GitHubと統合され、セットアップが不要で、シンプルなUI。

8
marko

2015年2月に更新

コードシップ

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

元の回答

Drone.io

メインのRuby on Railsアプリケーションを http://drone.io/ でセットアップしました。 シンプルなホスト型ソリューションを探しているなら、チェックアウトする価値があると思います。

8
Joshua Pinter

Travis CIは、Ruby world: http://travis-ci.org/ で人気があります

7
Vanuan

Tddium をご覧ください。 Tddiumは、Rubyアプリケーションの継続的な統合、展開、および対話型テストをサポートします。Selenium、Headless Webkit、およびSolrをサポートする管理環境を提供します。ライブPostgres、MySQL、Mongo、およびRedisインスタンスをホストしますまた、大規模なテストスイートを自動的に並列化します。

7
Jay Moorthi

cruisecontrol.rbは、この場合完全に一致します。

http://cruisecontrolrb.thoughtworks.com/

6
madlep

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

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

6
csexton

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

5
oma

コードシップ を試して、それがあなたのために働くかどうかを確認することができます(私は創立者の一人です)

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

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

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

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

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

自分でやってください。テストを実行するためのbashスクリプトを作成し、テストに合格したら展開手順を実行します。通知が必要ですか?成功/失敗の平文のメールを自分で撮ってください。スケジューラが必要ですか?クロンジョブ。これは1か月あたり$ 0で、何をしているのかを知る手がかりになります。誰かに40ドル/月を支払うことが、これをもっと効率的に行うのにどのように役立つかわかりません。

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

Juuuuuustは私の2ペニーを議論に投げ込みました。 )

3
Victor Piousbox
3
Kirill Maximov

ここでは誰もアトラシアンの竹について言及していません。 Ruby on Rails Bambooを使用したCI:

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

3
Nowaker

整合性は素晴らしい解決策のようです。 herokuにデプロイするのは簡単です: http://elabs.se/blog/7-continuous-integration-testing-for-Ruby-on-Rails-with-integrity http://integrityapp.com

3
avocade

私はCIジョーが好きで、他のすべてに問題があります。CIジョーは仕事を成し遂げるための絶対的な最低限であり、非常に俊敏で信頼性があります。ハドソンのソースは恐ろしく、UIは私には魅力的ではありません。

1
Brent Greeff

実行コードの実行が必要な場合があります。

編集:リンクは、以前のRun Code Runサイトを参照しなくなったため削除されました。

1
Todd Stout

そして、 CI Joe

それは古いさびたピックアップトラックのようです。

私たちは毎日それを使用しています。

1
Hakan Ensari

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

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

測定ツールとテストツールのいくつかのアイデアを取り入れ、CIツールを試してみて、だれも気に入らなかったので、大きなXMLファイルやその他の構成を作成せずに、独自のツールを作成することにしました。ちょうどRailsになりました。

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

宜しくお願いします、

フェリペ・ジョット。

0
Felipe Giotto

「頻繁にコミットする」という哲学にサブスクライブする場合、コミットごとにCIを実行するのはかなり費用がかかります。簡単なcronjobを数時間ごとに実行して、結果をdevメーリングリストにメールで送信してみませんか?

0
JasonOng

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

0
Prasanna

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

0
Gabor Garami