Question

I've recently updated my gem to version 3.1.0, and since then cap production deploy passes fine, but the target deploy:restart is not called.

My server is deployed on Ubuntu 12.10 on Amazon EC2.

Why could that be?

Was it helpful?

Solution

Capistrano 3 no longer runs that task by default as many app servers don't require it. Add this to your config/deploy.rb:

after 'deploy:publishing', 'deploy:restart'

From the release notes:

Breaking changes:

  • deploy:restart task is no longer run by default. From this version, developers who restart the app on each deploy need to declare it in their deploy flow (eg after 'deploy:publishing', 'deploy:restart').

    Please, check 4e6523e for more information. (@kirs)

OTHER TIPS

If you are using namespaces, you can also do the following:

namespace :deploy do
  desc "My description"
  task :my_task do
    #do something
  end
  after :publishing, :my_task
end

In my case, in file 'production.rb' I had this roles: %w{web, app, db} which prevent block on roles(:app), in: :sequence, wait: 5 do in file "deploy.rb" from correct execution.You see, it needs to be roles: %w{web app db}

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top