Ruby on Railsの継続的インテグレーションソリューションを探していますが、結果にあまり満足していません。CruiseControl.NETを使用していた.NETショップから来ました。使いやすさと豊富なステータス/レポートで本当に甘やかされました。
理想的には私が探しています:
明らかなGit/SVNとTest :: Unitの統合
Rakeおよび/またはCapistranoとの統合
ビルドのステータスを示すWebインターフェイス
失敗したビルドの電子メール通知。
デスクトップ通知(潜在的にGrowlを介して)
ビルドステータス用のREST API
他のコード分析ツールを実行し、UIで結果を報告するためのプラグインフレームワーク
ここでオプションを試したところ、2011年後半にそれらをロールアップすると思いました。
死にかけた体験の後、まだリンクされている website with古くなった情報とデモサイトがダウンしたため、このプロジェクトのspark=人生は再びです。しかし、ドキュメントは動きませんでした。 チュートリアルの手順は単純に壊れています;私はgemsへの参照を変更し、帯域外でいくつかのものを構築し、私はまだそれを動作させることができませんでした。
デッドシンプル:ダウンロードするだけで、コマンドラインを実行してプロジェクトを追加できます(no UIそのために))、そしてRails app。を実行します。しかし、プロジェクトを編集するためのUIもありません、そしてnoビルドアーティファクトとの実際の統合リンクを表示する以外に、テスト実行のグラフ、トレンドラインなどを取得できません。また、routes.rb
ファイルを調整して、コードリンク機能(resources :projects
行は他のすべての非デフォルトルートの下に移動する必要があります)。
これは素晴らしく見えますが、賃金表は大したものではないようです。 3人のエージェントが無料で、依存しているときに数百ドルを負担する必要があります。 Personal Buildsは素晴らしく見えますが、予算を持っていません。
これはJava stalwartであり、)千のオプションがロードされているため、UIはわかりにくいであり、プロジェクトをセットアップするのは日課です。 全体のプラグインを取得し、ほとんどどこからでも引き出し、ほとんどすべてを実行し、ほとんどすべてを報告できます。OSXインストーラーは、Jenkinsを/Users/Shared/Jenkins/Home
が、そのディレクトリの作成に失敗するか、chown
からdaemon
になります(デフォルトで使用されます。GitHubをセットアップするには、新しいjenkins
ユーザーに変更する必要があります統合)。
私は実際にこれらを試していないが、理由を述べると思った:
Jenkins を使用しましたが、より軽量なソリューションの1つがうまくいったことを願っています。
CruiseControl.rb についてはどうですか?
CruiseControl
(thoughtworks)を行い、Ruby
で書かれた同じ群衆。非常に簡単にRake
を使用して他のツールを統合し、通知に Ruby-growl gemを使用できます。
Hudson を検討することもできます。 Javaプロジェクトで使用するように設計されていますが、RubyおよびRakeのサポートを含む、利用可能なプラグインの選択肢が豊富にあります。インターフェースを提供し、メール通知だけでなく、他の多くの機能(Twitterや巨大なクマのランプなど)もサポートしています。
コミュニティも非常に活発で、HudsonをSeleniumに接続する際に 複数の記事 がありました。これは、ブラウザ側のアプリケーションのテストに役立つかもしれませんRails.
別の見方は Team City です。これは小規模なプロジェクトやチーム(商用を含む)には無料です。私はTeam Cityが本当に好きで、以前は他のプロジェクトで使用していましたが、現在、ソース管理にMercurialを使用しています。TeamCityのサポートは、検討中のベータ版でした。
CruiseControl.netからTeam Cityに切り替えたところ、改善にまったくショックを受けました。似たような機能セットと非常に活発なコミュニティのために、私はハドソンに不満を感じています。
Circle は Railsの高度なCIサービス (およびその他のWebアプリ)です。リストから、次をサポートしています。
Joelと私は Stackoverflowポッドキャスト - チェックアウト !
(編集)免責事項:ポール・ビガーはStackoverflowプロファイルで述べているようにCircleを設立しました
セマフォ は、RubyおよびRailsアプリ。GitHubと統合され、セットアップが不要で、シンプルなUI。
Drone.ioの開発が不足していたため、Codeshipに切り替えて、完全に楽しんでいます。積極的に開発および改善され、優れたデザインを持ち、非常に高速です。さらに、最下位層では実際に無料(1か月あたり最大100ビルド)であるため、最終的にDrone.ioよりも安価になりました。
メインのRuby on Railsアプリケーションを http://drone.io/ でセットアップしました。 シンプルなホスト型ソリューションを探しているなら、チェックアウトする価値があると思います。
Travis CIは、Ruby world: http://travis-ci.org/ で人気があります
Tddium をご覧ください。 Tddiumは、Rubyアプリケーションの継続的な統合、展開、および対話型テストをサポートします。Selenium、Headless Webkit、およびSolrをサポートする管理環境を提供します。ライブPostgres、MySQL、Mongo、およびRedisインスタンスをホストしますまた、大規模なテストスイートを自動的に並列化します。
cruisecontrol.rbは、この場合完全に一致します。
多くの人々のように、私はcruisecontrol.rbの大ファンでしたが、最近、私のプロジェクトを Integrity に切り替えました。
軽量で簡単にセットアップできます(cc.rbによく似ています)が、インターフェイスはより優れています。
BigTuna -Rubyで記述され、Railsを使用し、自身をCIとして使用します。
コードシップ を試して、それがあなたのために働くかどうかを確認することができます(私は創立者の一人です)
クラウドベースの継続的な統合と展開(特別なHerokuサポート付き)
アイテムの最初の4つは既に実装されており、多くの企業で正常に機能しています
これらの機能にも取り組んでいます:
自分でやってください。テストを実行するためのbashスクリプトを作成し、テストに合格したら展開手順を実行します。通知が必要ですか?成功/失敗の平文のメールを自分で撮ってください。スケジューラが必要ですか?クロンジョブ。これは1か月あたり$ 0で、何をしているのかを知る手がかりになります。誰かに40ドル/月を支払うことが、これをもっと効率的に行うのにどのように役立つかわかりません。
たとえば、アセットパイプラインが正しく構成されていないため、展開が失敗します(アセットはプリコンパイルに失敗します)。これは、単体テスト、機能テスト、統合テスト、回帰テスト、またはその他のテストでは検出されません。このエラーはCIによってキャッチされません。 bashスクリプトの作成に費やす時間は、CI環境のセットアップに費やす時間よりも短い可能性が高く、1か月あたり40ドル節約できます。
Juuuuuustは私の2ペニーを議論に投げ込みました。 )
ここでは誰もアトラシアンの竹について言及していません。 Ruby on Rails Bambooを使用したCI:
http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html
整合性は素晴らしい解決策のようです。 herokuにデプロイするのは簡単です: http://elabs.se/blog/7-continuous-integration-testing-for-Ruby-on-Rails-with-integrity http://integrityapp.com
私はCIジョーが好きで、他のすべてに問題があります。CIジョーは仕事を成し遂げるための絶対的な最低限であり、非常に俊敏で信頼性があります。ハドソンのソースは恐ろしく、UIは私には魅力的ではありません。
実行コードの実行が必要な場合があります。
編集:リンクは、以前のRun Code Runサイトを参照しなくなったため削除されました。
RubyOnRails + SVN/GIT用の非常にシンプルな継続的統合アプリを公開しました。たぶんあなたはそれを試してみる必要があります:
http://github.com/felipegiotto/Inotegration/tree/master
測定ツールとテストツールのいくつかのアイデアを取り入れ、CIツールを試してみて、だれも気に入らなかったので、大きなXMLファイルやその他の構成を作成せずに、独自のツールを作成することにしました。ちょうどRailsになりました。
よろしければ、フィードバックをお送りください。
宜しくお願いします、
フェリペ・ジョット。
「頻繁にコミットする」という哲学にサブスクライブする場合、コミットごとにCIを実行するのはかなり費用がかかります。簡単なcronjobを数時間ごとに実行して、結果をdevメーリングリストにメールで送信してみませんか?
CloudMunchも検討する必要があります。これにより、豊富なビルドメタデータのセットを使用して、コードベースの一部として異なる言語を使用できるようにする多言語プラットフォームが提供されます。
Hudson/Jenkinsを構成しました。 ci_reporter gemは、JUnit出力のフォーマット設定に役立ち、Hudsonが期待するものであり、HudsonにはRailsプラグインがあるため、rcovカバレッジ、テストレポート、Rails統計など。