github webhooksとcapistranoを使用して継続的なデプロイメントルーチンを実装しようとしています。github webhookで実行するとcapistranoデプロイメントシェルスクリプトが失敗する
私の計画では、capistrano rakeタスクをシェルスクリプトに入れ、github webhookである別のrailsプロジェクトのコントローラアクションから呼び出します。ここで
は、シェルスクリプト(wallet_deploy.sh)
#!/bin/bash
cd $HOME/work/wallet
bundle exec cap production deploy > wallet_deploy_log 2>&1
はここでログここ
/home/deploy/.rbenv/versions/2.2.4/lib/ruby/gems/2.2.0/gems/bundler-1.11.2/lib/bundler/rubygems_integration.rb:304:in `block in replace_gem': capistrano is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
from /home/deploy/.rbenv/versions/2.2.4/bin/cap:22:in `<main>'
はときに私のコントローラのアクション
def release_request
system("./wallet_deploy.sh")
#DeployWorker.perform_async // tried using a worker too with no success
render :text => params.to_s
end
キャップの展開が完全に動作しているされていますシェル内で手動で実行する
[email protected]:~/apps/ci/current$ ./wallet_deploy.sh
私は何が間違っているのか分かりませんし、これを実装する別のアプローチがありますか?
ありがとうございました!それは働いた –
@SharnJayanthaはあなたが受け入れられたとして答えをマークできますか?ありがとう –