Как сделать так, чтобы Capistrano НЕ откатывался в случае сбоя задачи

Мы используем Capistrano / Webistrano (с гемом railsless-deploy Ли Хэмбли) для передачи нашего PHP-приложения на рабочие серверы. У меня есть несколько пользовательских задач, которые запускаются во время различных частей процесса развертывания.

В качестве примера у меня есть задачи, которые пытаются остановить и перезапустить экземпляр jetty solr. Однако иногда этот бит не работает во время развертывания, поэтому Capistrano откатывает все развертывание и возвращается к предыдущей версии. Это боль. : -)

Я ' Я хочу сказать Capistrano игнорировать возвращаемый результат этих задач, поэтому, если они потерпят неудачу, Capistrano продолжит свой путь и все равно завершит развертывание. Мне очень легко послать ssh на сервер постфактум и правильно убить и перезапустить экземпляр solr, вместо того, чтобы снова выполнять полное развертывание.

Вот некоторые важные части сценария развертывания:

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
задан TravellingGuy 25 January 2011 в 21:44
поделиться