0

Capistrano 2.5.18 と Rake 0.9.2.2 を搭載したマシンで Rails アプリを実行しています。展開は問題なく機能します。

Capistrano 2.12.0 と Rake 0.9.2.2 を実行する別のマシンで同じアプリをセットアップしましたが、ファイルをコピーするなどの点で実行されますが、アフター フックは実行されません。

deploy:symlink タスクが deploy:create_symlink に変更されたことを読んだので、それを更新しました。

これはレシピを簡略化したものです...

set :ssh_options, { :forward_agent => true }
set :use_sudo, true 
set :deploy_via, :copy
set :copy_strategy, :export
set :copy_compression, :gzip
on :load, 'max:deploy:ask_env'

after 'deploy:create_symlink', 'max:deploy:finalize_update' # DOESN'T WORK!!

namespace :deploy do
  task :restart do
    run "#{sudo :as => admin_runner} touch #{current_path}/tmp/restart.txt"
  end
end

namespace :max do
  [...]
  namespace :deploy do
    # NEVER CALLED!!!
    desc "Finalizes update by setting permissions"
    task :finalize_update do
      run "chgrp -R #{admin_group} #{current_release}; exit 0"
    end
  end
  [...]
end

スクリプトを実行したときの出力の最後のビットは次のようになります...

  * executing `deploy:create_symlink'
  * executing "rm -f /home/s-exer1/webapps/max-shared-desktop/application_home/current && ln -s /home/s-exer1/webapps/max-shared-desktop/application_home/releases/20121031124115 /home/s-exer1/webapps/max-shared-desktop/application_home/current"
    servers: ["vaomb81"]
    [vaomb81] executing command
    command finished in 97ms
 ** transaction: commit
  * executing `deploy:restart'
  * executing "sudo -p 'sudo password: ' -u s-exer1 touch /home/s-exer1/webapps/max-shared-desktop/application_home/current/tmp/restart.txt"

deploy:create_symlink タスクが実行された後、 deploy:restart にジャンプします - 私の after フックをスキップします。

これを引き起こしている可能性のあるものについて何か提案はありますか?

ありがとう

4

2 に答える 2

1

何が間違っていたのかわかりませんが、判明しました

 after 'deploy:create_symlink', 'max:deploy:finalize_update'

Capistrano 2.12.0 で動作します

于 2012-10-31T15:54:45.813 に答える
0

考えられる原因は、後続のタスクの1つ(おそらくの行sudo)が出力を表示せずに失敗していることです。わかりやすい兆候はcommand finished in ...s、最後のコマンドでも表示されないことです。

于 2012-10-31T13:05:25.390 に答える