Question Comment faire en sorte que Capistrano ne soit pas annulé si une tâche échoue


Nous utilisons Capistrano / Webistrano (avec le gem de railsless-deploy de Lee Hambley) pour pousser notre application PHP sur les serveurs de production. J'ai des tâches personnalisées qui sont exécutées pendant différentes parties du processus de déploiement.

A titre d'exemple, j'ai des tâches qui tentent d'arrêter et de redémarrer une instance de solitaire. Cependant, parfois ce bit échoue pendant le déploiement, Capistrano annule le déploiement complet et revient à la révision précédente. C'est une douleur. :-)

Je voudrais dire à Capistrano d'ignorer le résultat de retour de ces tâches, donc si elles échouent, Capistrano continue sur sa lancée et termine le déploiement de toute façon. Il est très facile pour moi de ssh sur le serveur après coup, de tuer et de redémarrer correctement l'instance solr, plutôt que de devoir refaire un déploiement complet.

Voici quelques 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

34
2018-01-25 21:44


origine


Réponses:


du Documents de travail de Capistrano il y a une configuration que vous pouvez ajouter s'il y a une erreur, pour continuer.

task :solr_start, :on_error => :continue do
    # your code here
end

Ajoutez simplement cela à chaque tâche que vous voulez ignorer des erreurs et continuez. Cependant, la meilleure chose à faire est de voir si vous pouvez déterminer ce qui cause l’échec et que la commande de redémarrage soit plus robuste pour vraiment la redémarrer. Je le dis seulement, car lorsque vous essayez de transmettre le script à quelqu'un d'autre, il se peut qu'il ne sache pas exactement comment le redémarrer correctement.


33
2018-01-29 20:51