2014-12-28 7 views
1

Я использую Capistrano для развертывания приложений, которые я создаю в Sinatra и Rails. Некоторое время я писал все, что мне нужно было сделать во время развертывания, в config/deploy.rb. Похоже, я просто пишу Рейка здесь. Мне было интересно, могу ли я получить совет по поводу того, поставил ли я их в нужное место или мог бы быть более «Capistranorish» с моими развертываниями.Где я должен ставить свои задачи развертывания при использовании Capistrano?

Вот несколько примеров того, что я здесь делаю. Я пишу почти все, что мне нужно для развертывания.

# deploy.rb 
task :initctl_reload_configuration do 
    on roles(:app), in: :sequence do 
    execute "sudo initctl reload-configuration" 
    end 
end 

task :rebuild_sitemap_no_ping do 
    on roles(:app), in: :sequence do 
    execute "cd /srv/app/#{environment}/current && RAILS_ENV=#{environment} bundle exec rake sitemap:refresh:no_ping" 
    end 
end 

task :rebuild_sitemap do 
    on roles(:app), in: :sequence do 
    execute "cd /srv/app/#{environment}/current && RAILS_ENV=#{environment} bundle exec rake sitemap:refresh" 
    end 
end 

task :restart_services do 
    on roles(:app), in: :sequence do 
    execute "sudo service tomcat6 restart" 
    execute "sudo service sunspot-solr restart" 
    execute "sudo service app-#{environment} restart" 
    execute "sudo service nginx restart" 
    end 
end 

ответ

3

Если это все, что у вас есть, это может быть просто отлично оставить его в deploy.rb.

Если вы действительно хотите, чтобы переместить эти задачи где-то, ниже содержание Capfile (вы, вероятно, иметь его в корневом каталоге вашего проекта) должен дать вам подсказку:

# Load custom tasks from `lib/capistrano/tasks' if you have any defined 
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r } 

Так просто создать файл в lib/capistrano/tasks/ заканчивая .rake, и это должно сделать это!

+0

Удивительный совет! Спасибо! Я определенно собираюсь в итоге получить гораздо больше вещей, которые мне нужно будет лучше организовать. Таким образом, перемещение в этот каталог и разбивка на отдельные задачи Rake помогут. –

Смежные вопросы