Rails 3でクルーズコントロールをセットアップする際の問題
-
27-10-2019 - |
質問
私は自分のプロジェクトのためにサーバーにクルーズコントロールをセットアップするだけです。しかし今、私はこれらのレーキタスクとカピストラーノがどのように機能するかを少し混乱させています。私は多くの設定を試しましたが、それでも成功しませんでした。誰かがすべてのレーキタスクを実行する方法を手伝っていて、ビルドを成功させた後、アプリケーションを展開するにはどうすればよいですか。
解決 2
コードを調べた後にありがとう、私は展開できることがわかりました - :
1. CCRB_CAP_DEPLOYER.RBプラグインを使用してそうすることはできますが、少しバギーであるため、パスにいくつかの変更を加えて、ここでコードをGitに再びプッシュしました。
https://vparihar01@github.com/webonise/cruisecontrol.git
# in mean time I add some more plugins and features . Also add the wiki for proper step how to setup cruise control server and how make it customize as per your need
これで、プロジェクト構成ファイル内にこれら2つの行を追加する必要がありました /.cruise/projects/your_project/cruise_config.rb
project.cap_deployer.emails = ['asda@fsdfsfsdfs.com'] #here add the email to notify given user if deployment is successful or not
project.cap_deployer.stages = ['staging','production'] #here add the where you want to deploy test , staging or production
また、このプラグインは、ビルドが成功した場合にのみコードをそれぞれのサーバーに展開できます。乾杯
2.秒の方法は、それを名前として1つのシェルスクリプトを作成することです build_script.sh この道へ /.cruise/projects/your_project/work/
その後、追加します
#!/bin/bash
# conditionally install project gems from Gemfile
bundle check || bundle install || exit 1
cap deploy
build_script.shへの行と保存してから追加します project.build_command = './build_script.sh' プロジェクト構成ファイル内 /.cruise/projects/your_project/cruise_config.rb
現在、Everthingが正常に機能していますが、2番目の方法では、問題はビルドが失敗した場合、コードもサーバーに展開されていることです。だから私はそれが悪いアプローチだと思います。みんなに助けてくれてありがとう。
他のヒント
CruiseControlはアプリを展開することは想定されていません。
アプリを展開したい場合(多くのクルーゼコントロールテストが多くのコミットに対してソースコントロールを行うために成功した後、次のようになります。
cap deploy