Does the before statement live outside of a task? Can it be considered a rule? When I tried to chain the commands as you have below, they didn't get executed.
For example, I have a task such as this: task :run_all. :roles => some_role do before "deploy:setup", "deploy:one", "deploy:two", "deploy:three" end If I call the "run_all" task, will this initiate the chain to start executing? That didn't work for me. Or, should this really be like this: before "deploy:setup", "deploy:one", "deploy:two", "deploy:three" task :run_all. :roles => some_role do setup end So, the before statement lives outside of the task, and all we do is initiate the "setup" task which will trigger the other events to occur. Thanks for the feedback! On Mar 3, 5:56 pm, Donovan Bray <[email protected]> wrote: > you can do > > before "deploy:setup", "deploy:one", "deploy:two", "deploy:three" > > I usually format them as: > > before "deploy:setup", > "deploy:one", > "deploy:two", > "deploy:three" > > Which is clearer to me > > you can also do it as a block and method call syntax > > before "deploy:setup" do > deploy.one > deploy.two > deploy.three > end > > There is also a way to do transactions, such that rollbacks are called if > one of the tasks fails. I haven't had an opportunity to use the transaction > form, but it exists. > > I also wrap my top level tasks so that long task chains don't get invoked > unless I use a top level task > > on :start, :only => ["deploy:setup", "deploy:cold", "deploy", > "deploy:migrations"] do > after "deploy:migrate", "notify:admins" > end > > That allows me to run "deploy:migrate" by itself without triggering behavior > that should happen with the top level tasks. This is particularly helpful > when you are trying to fix something that has went wrong. > > Many of my recipes have common commands, like :install, :setup, :configure, > :verify where: after "sphinx:install", "sphinx:setup", "sphinx:configure", > "sphinx:verify" > > When "sphinx:install" is called in a top level task, it automatically > follows up with the other three. > > But when I invoke without one of the top level tasks, I can call them > individually and it doesn't start walking down the task chain. > > > > On Wed, Mar 3, 2010 at 1:36 PM, pete <[email protected]> wrote: > > Hi- > > > I would like to execute several commands that each depend on each > > other. For example, "cleanup" depends on "deploy" completing and > > "deploy" depends on "stage" completing. > > > I have separate tasks defined for each of these, but when I try to add > > them into a single task to run them all, sometimes files don't exist > > when deploying because "stage" did not finish executing, etc. > > > Seems like an ideal situation for "before" but all the examples I have > > seen only show "before" being used with 2 tasks (e.g. before("task2", > > "task1") > > > Is there a way to chain multiple events that have dependencies on each > > other using the "before" task? > > > Thanks! > > > -- > > * You received this message because you are subscribed to the Google Groups > > "Capistrano" group. > > * To post to this group, send email to [email protected] > > * To unsubscribe from this group, send email to > > [email protected]<capistrano%2bunsubscr...@googlegrou > > ps.com>For more options, visit this group at > >http://groups.google.com/group/capistrano?hl=en -- * You received this message because you are subscribed to the Google Groups "Capistrano" group. * To post to this group, send email to [email protected] * To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/capistrano?hl=en
