1

私は最初のレールアプリを開発中で、自動化されたチェックアウトとデプロイメントのための効率的かつクリーンなソリューションを探しています。Railsでの自動配置

これまでのところ、CruiseControl.rb(CruiseControl.NETに精通していた)とCapistranoの両方を調べました。残念ながら、私が何かが欠落していない限り、それぞれの1つは私が望むものの約半分しか行いません。私がこれまで見てきたものについては

CruiseControlの

  • をコミット時に自動化された。また
  • バックユニット/機能テストやレポートを実行し、リポジトリのチェックアウトの上に構築さ
      • 強み
    • Weaknesse S
      • ノー内蔵の展開メカニズム(最高私はこれまで、独自のbashスクリプトを書いている見つけることができます)

    カピストラーノ

    • 強みのために建てられた
      • デプロイメント
    • 弱点
      • コマンド(例:つまり、CruiseControlのピングに変更のためのリポジトリを持って、コミット時にチェックアウトを行い、テストを実行 - 私は2つの文字列をできる方法を見つけた)コミット時に

    を自動チェックアウトを行いません。その後、(Capistranoもリポジトリのチェックアウトを行うつもりであっても)展開を完了するとCapistranoに電話をかけます。すべての作業を完了すると

    基本的に、私はセットアップ3つのプロジェクトを持っているしたいと思います:

    • のDevを:チェックアウト/展開が全く何もタッチではありません。誰かがファイルをコミットすると、何かがそれをチェックアウトし、テストを実行し、変更を展開し、レポートバック
    • ステージ:チェックアウト/展開
    • のProdをクリックして、ボタンが必要です。ボタンのクリックは、タグ付けされたが、チェックアウトまたは移動しないのいずれかステージからのファイル

    .NETの世界でCruiseControl.NETとMSBuildを組み合わせて使用​​していますが、これはかなり簡単でした。私はこれもルビーの展開の世界で共通のパターンだと思いますが、私は間違いやすいかもしれません。

    答えて

    1

    とにかく2つのシステムを使用してビルドして展開します。少なくとも2つの理由があります:別々に実行できるはずです。デプロイ用とビルド用の2つの設定ファイルが必要です。しかし、あなたは簡単に2つのシステムを一緒に接着することができます。

    単純なカピストラのタスクを作成して、テストしてレポートします。 「実行」コマンドを使用して任意の操作を行うことができます。

    コマンドラインツールを使用したくない場合は、2年前にwebistranoがありました。

    Toは、gitをリポジトリとして使用する場合、http://github.com/benschwarz/gitnotify/tree/masterのようなものを使用してビルドデプロイメントをトリガーできます。

    3

    Hudsonを試してみてください(無料でオープンソース)。私はCruiseControlを使い始めましたが、設定を変更したり、プロジェクトを追加したりするたびに、XML設定を再学習する必要がありました。その後、私はハドソンを使用し始め、戻って見ることはありません。ハドソンはウェブ上でほぼ完全に設定可能です。当初、Java用の継続的な統合ツールでしたが、.NETやRuby on Railsなどの他の開発スタックにはpluginsがあります。 Rakeプラグインがあります。それでも動作しない場合は、Rakeビルド/テストの実行後に任意のコマンドラインを実行するように設定できます。

    java -jar hudson.war

    をそれとも、任意のサーブレットコンテナでの戦争をドロップすることができます。

    私はまた、ハドソンが軌道に乗るために非常に簡単です追加する必要があります。少なくとも開発の自動展開のための

    0

    、可能なフックスクリプトはgitでチェックアウト:私はこれが実行されるため、あなたは、ポスト受信フックスクリプトに集中したいと思います

    http://git-scm.com/docs/githooks

    リモートサーバーにプッシュした後

    また、Mislavのgit-deployをgithubでチェックする価値があります。管理の管理をきれいにします。

    関連する問題