2013-04-04 17 views
10

を働いていない私はCapistrano v2.14.2を使用してdeploy:create_symlinkためbeforeafterフックを使用しようと、それらのどれも発射に思えないのです...一部カピストラーノ展開フックが

私はこの警告を得ていた。

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

だから私はここでdeploy:create_symlink代わりのdeploy:symlink

を使用するように私のコードを更新しましたが、SNでありますここに私の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") 

のipplet出力の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_updatedeploy:update_codeため

フックはまったく問題なく動作しているようです。

deploy:create_symlinkの場合、beforeafterのフックを使用することに何が起こったのですか?

答えて

5

同じバージョンのCapistranoを使用して同様の問題が発生しています。私もcapistrano-multistageを使用しています。それが問題を引き起こしているのかどうか不思議です(まだCapistranoの設定をテストしていません)。

基本的に、deploy:symlinkのbefore/afterトリガにフックすると、deploy:create_symlinkを使用するように指示されますが、deploy:symlinkは実際に実行されます。私がそれらのいずれかを起動すると、起動しません。私はシンボリックリンクが私のためにデプロイする最後のステップであるので、私は、私が代わりに「展開した後」でトリガする必要があることを考えてしまったこの記事で、全体に走っ

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

ここでは、私が解決方法です私の展開:私の「A(つまり、前のタスクであり、それが実際にトリガー以降)

  • が移動:「finalize_updateデプロイ後」をトリガー:

    • は私の「シンボリックリンク展開する前に」を移転しますFTERデプロイ:シンボリックリンク
  • 3

    "デプロイ後の変更」をトリガー"

    "after deploy:symlink" 
    

    "after deploy" 
    
    +0

    にこれが質問に答えていません。とにかくCapistrano 3のための2015年4月のように、 'before 'check:linked_files'、:do_stg {}'のようなコマンドは正常に動作します。 (おそらく)何が動作しているかを確認する1つの方法は、 'bundle exec cap -T'でフックのリストを取得することです。 –