Ich versuche eine kontinuierliche Deployment-Routine mit github Webhooks und capistrano zu implementieren.capistrano Deployment-Shell-Skript schlägt fehl, wenn es durch github webhook ausgeführt wird
Mein Plan ist es, meine Capistrano-Rake-Aufgabe in ein Shell-Skript zu schreiben und sie von einer Controller-Aktion in einem anderen Rails-Projekt aufzurufen, das ist der Github-Webhook. Hier
ist das Shell-Skript (wallet_deploy.sh)
#!/bin/bash
cd $HOME/work/wallet
bundle exec cap production deploy > wallet_deploy_log 2>&1
Hier ist das Protokoll
/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>'
Hier wird die Controller-Aktion
def release_request
system("./wallet_deploy.sh")
#DeployWorker.perform_async // tried using a worker too with no success
render :text => params.to_s
end
Cap Einsatz funktioniert perfekt, wenn i Führen Sie es manuell in der Shell
[email protected]:~/apps/ci/current$ ./wallet_deploy.sh
Nicht sicher, was ich falsch mache und gibt es einen anderen Ansatz, dies zu implementieren?
Vielen Dank! Es hat funktioniert –
@SharnJayantha könnten Sie die Antwort als akzeptiert markieren, dann? Vielen Dank –