Friday, April 29, 2011

Creating a Capistrano task that performs different tasks based on role

I'm looking for a way to call a single Capistrano task to perform different things to different roles. Is Capistrano able to do this, or do I have write a specific task for each role?

From stackoverflow
  • The standard way to do this in Capistrano:

    task :whatever, :roles => [:x, :y, :z] do
      x_tasks
      y_tasks
      z_tasks
    end
    
    task :x_tasks, :roles => :x do
      #...
    end
    
    task :y_tasks, :roles => :y do
      #...
    end
    
    task :z_tasks, :roles => :z do
      #...
    end
    

    So yes, you do need to write separate tasks, but you can call them from a parent task and they will filter appropriately.

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.