你如何为capistrano任务添加一些步骤?

Rea*_*nly 12 capistrano

我想在运行deploy:migrate任务之前停止一些进程.我知道我可以通过复制现有代码并在任务的开头和结尾添加停止/启动步骤来重新定义deploy:migrate任务.

我想知道是否有办法避免在我的任务版本中从默认的deploy:migrate任务中复制代码.有没有办法在定义同名的新任务时引用现有的deploy:migrate任务?

Emi*_*ily 21

而不是重新定义deploy:migrate,您应该为它定义一个前或后钩子.首先,创建一个新任务,完成您需要做的事情:

task :custom_name do
  # whatever you need to do
end
Run Code Online (Sandbox Code Playgroud)

然后deploy:migrate通过执行以下操作之一将此新任务设置为在任务之前或之后运行:

before "deploy:migrate", :custom_name
after "deploy:migrate", :custom_name
Run Code Online (Sandbox Code Playgroud)