2013-04-04 10 views
10

używam Capistrano v2.14.2 i próbuje użyć before i after haki do deploy:create_symlink, ale żaden z nich nie wydają się wypalanie ...Niektóre haczyki wdrażania Capistrano nie działa

byłem coraz to ostrzeżenie:

[Deprecation Warning] This API has changed, please hook 'deploy:create_symlink' instead of 'deploy:symlink'.

Więc zaktualizowane mojego kodu używać deploy:create_symlink zamiast deploy:symlink

Oto sn ipplet z moich 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") 

Oto snipplet wyjścia:

* 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 

żadne haczyki są nazywane ...

Haki do deploy:finalize_update i deploy:update_code wszystkie wydają się działać bez żadnego problemu .

Co się stało z możliwością użycia haków before idla deploy:create_symlink?

Odpowiedz

5

Używam tej samej wersji Capistrano. Używam również capistrano-multistage i jestem ciekawy, czy to powoduje problem (nie testowałem jeszcze zwykłej konfiguracji Capistrano).

Zasadniczo, jeśli połączysz się z wyzwalaczem przed/po przy wdrażaniu: dowiązanie symboliczne, mówi, aby użyć opcji wdrażania: create_symlink, ale wdrożyć: faktycznie działa dowiązanie symboliczne. Jeśli wyzwolę którekolwiek z nich, nie zostanie ono uruchomione.

natknąłem tego artykułu, co dało mi do myślenia, że ​​powinna wyzwalać „po wdrożeniu” zamiast, ponieważ dowiązanie jest ostatnim krokiem w oddelegować na mnie:

http://blog.rememberlenny.com/2013/03/04/deploying-wordpress-with-capistrano-symlink-issue-fix/

Oto jak rozwiązać moja wdrożenie:

  • Przeniesiony mój „przed wdrożeniem: dowiązania symbolicznego” spust „po deploy: finalize_update” (ponieważ to był poprzednie zadanie i rzeczywiście wyzwala)
  • Przeniesiony mojego „a fter Deploy: symlink”wyzwalacza "po wdrożeniu"
3

zmiany

"after deploy:symlink" 

do

"after deploy" 
+0

To nie jest odpowiedź na pytanie. W każdym razie, podobnie jak w kwietniu 2015 r. Dla Capistrano 3, polecenia takie jak 'before 'check: linked_files',: do_stg {}' działają poprawnie. Jednym ze sposobów sprawdzenia, co jest (być może) działającego, jest uzyskanie listy haków z 'bundle exec cap -T'. –