私はカピストラーノが初めてで、特定の名前空間でタスクの実行順序をどのように制御できるのか疑問に思っていました。
たとえば、デプロイ名前空間に追加のタスクがいくつかあります。deploy:bundle と deploy:assets を deploy:restart の前に実行したかったので、これらの行を追加しました
after 'deploy:update_code', 'deploy:bundle'
after 'deploy:bundle', 'deploy:assets'
after 'deploy:assets', 'deploy:restart'
これがあなたがそれを行うべきかどうかはわかりません。皆さん、何かコツがあれば教えてください!
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true }
do
run "touch #{current_path}/tmp/restart.txt"
end
task :bundle do
run "cd #{current_path} && bundle install"
end
task :assets do
run "cd #{current_path} && bundle exec rake assets:precompile"
end
end
after 'deploy:update_code', 'deploy:bundle'
after 'deploy:bundle', 'deploy:assets'
after 'deploy:assets', 'deploy:restart'