Некоторые перехватчики развертывания Capistrano не работают
Я использую Capistrano v2.14.2
и пытаюсь использовать крючки before
и after
для deploy:create_symlink
, но никто из них, похоже, не стреляет...
Я получал это предупреждение:
[Deprecation Warning] This API has changed, please hook 'deploy:create_symlink' instead of 'deploy:symlink'.
Итак, я обновил свой код, чтобы использовать deploy:create_symlink
вместо deploy:symlink
Вот snipplet моего deploy.rb
namespace :foo do
task :start do
puts "starting foo..."
end
task :stop do
puts "stoping foo..."
end
end
before('deploy:create_symlink', "foo:stop")
after('deploy:create_symlink', "foo:start")
Вот snipplet вывода:
* 2013-04-04 13:34:27 executing `deploy:symlink'
* executing "rm -f /web/example.com/current && ln -s /web/example.com/releases/20130404203425 /web/example.com/current"
servers: ["app1"]
[app1] executing command
command finished in 467ms
Никакие крючки не называются...
Крючки для deploy:finalize_update
и deploy:update_code
кажутся работающими без каких-либо проблем.
Что случилось с возможностью использовать before
и after
hooks для deploy:create_symlink
?
Ответы
Ответ 1
Я сталкиваюсь с аналогичной проблемой, используя ту же версию Capistrano. Я также использую capistrano-multistage, и мне любопытно, если это вызывает проблему как-то (пока не проверили простую настройку Capistrano).
В принципе, если вы подключаетесь к триггеру до/после развертывания: symlink, он сообщает вам использовать deploy: create_symlink, но развернуть: symlink - это то, что на самом деле выполняется. Если я запускаю на любом из них, он не срабатывает.
Я столкнулся с этой статьей, которая заставила меня думать, что я должен запускать "после развертывания" вместо этого, поскольку symlink - последний шаг в развертывании для меня:
http://blog.rememberlenny.com/2013/03/04/deploying-wordpress-with-capistrano-symlink-issue-fix/
Вот как я решил свое развертывание:
- Переместил мой "до развертывания: symlink" триггер до "после развертывания: finalize_update" (поскольку это была предыдущая задача, и она фактически запускается)
- Перемещено мое "после развертывания: symlink" триггер "после развертывания"
Ответ 2
изменить
"after deploy:symlink"
к
"after deploy"