2013-04-04 9 views
10

ich Capistrano v2.14.2 bin mit und versuchen, die before und after Haken für deploy:create_symlink zu verwenden, aber keiner von ihnen scheinen zu feuern ...Einige Capistrano Einsatz Haken funktioniert nicht

Ich wurde diese Warnung:

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

ich meinen Code So aktualisiert deploy:create_symlink zu verwenden, statt deploy:symlink

ist hier ein sn ipplet meiner 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") 

ist hier ein snipplet des Ausgangs:

* 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 

Keine Haken genannt werden ...

Haken für deploy:finalize_update und deploy:update_code alle scheinen ohne Problem zu arbeiten, .

Was ist passiert, before und after Haken für deploy:create_symlink zu verwenden?

Antwort

5

Ich laufe auf ein ähnliches Problem, mit der gleichen Version von Capistrano. Ich benutze auch CAPISTRANO-MULTISTAGE, und ich bin neugierig, ob dies das Problem verursacht (habe noch kein einfaches Capistrano Setup getestet).

Wenn Sie sich bei der Bereitstellung in einen Vorher/Nachher-Trigger einklinken: Symlink, werden Sie aufgefordert, deploy: create_symlink zu verwenden, aber deploy: symlink wird tatsächlich ausgeführt. Wenn ich einen dieser Trigger auslöst, wird nicht ausgelöst.

ich auf diesem Artikel lief, was ich hätte zu denken, dass ich auf auslösen sollte stattdessen „nach bereitstellen“, da Symlink für mich den letzten Schritt in deploy ist:

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

Hier ist, wie ich beschloß mein Einsatz:

  • Moved my "vor deploy: Symlink" Trigger "nach deploy: finalize_update" (da, dass die bisherige Aufgabe war und es löst tatsächlich)
  • Moved my „ein fter deploy: Symlink“Trigger "nach deploy"
3

Änderung

"after deploy:symlink" 

zu

"after deploy" 
+0

Das beantwortet nicht die Frage. Wie auch immer, für April 2015 für Capistrano 3, Befehle wie 'vor 'check: linked_files',: do_stg {}' funktionieren einwandfrei. Eine Möglichkeit zu überprüfen, was (vielleicht) funktioniert, ist die Liste der Hooks mit 'bundle exec cap -T '. –

Verwandte Themen