Nous sommes à l'aide de Capistrano/Webistrano (avec Lee Hambley de railsless-déployer gem) pour pousser notre application PHP sur les serveurs de production. J'ai quelques tâches personnalisées que vous faire au cours de diverses parties du processus de déploiement.
Comme un exemple, j'ai des tâches qui tentent d'arrêter et de redémarrer une jetée solr instance. Cependant, parfois, ce bit échoue lors de la déployer, de sorte que Capistrano annule l'ensemble de déployer et revient à la révision précédente. C'est une douleur. :-)
Je voudrais vous dire, Capistrano d'ignorer le résultat de retour de ces tâches, si elles échouent, Capistrano continue sur son chemin et se termine le déployer de toute façon. Il est très facile pour moi de faire du ssh vers le serveur après le fait et correctement arrêter et redémarrer le solr exemple, plutôt que d'avoir à faire un complet se déployer à nouveau.
Voici les parties pertinentes du script de déploiement:
before "deploy:symlink", :solr_kill
after "deploy:symlink", :solr_start, :solr_index
task :solr_kill do
run "cd #{current_path}/Base ; #{sudo} phing solr-kill"
end
task :solr_start do
run "cd #{current_path}/Base ; #{sudo} phing solr-start"
run "sleep 10"
end
task :solr_index do
run "#{sudo} #{current_path}/Base/Bin/app.php cron run solr_index_cron"
end