Как добавить несколько шагов в задачу Capistrano? - PullRequest
12 голосов
/ 09 октября 2009

Я бы хотел остановить некоторые процессы перед запуском задачи deploy: migrate. Я знаю, что могу переопределить задачу deploy: migrate, скопировав существующий код и добавив шаги остановки / запуска в начале и в конце задачи.

Мне интересно, есть ли способ избежать копирования кода из развертывания по умолчанию: перенести задачу в мою версию задачи. Есть ли способ ссылаться на существующую задачу развертывания: перенос при определении новой задачи с тем же именем?

Ответы [ 2 ]

21 голосов
/ 12 октября 2009

Вместо того, чтобы переопределять deploy:migrate, вы должны определить для него хук до или после. Сначала создайте новое задание, которое выполняет то, что вам нужно:

task :custom_name do
  # whatever you need to do
end

И затем установите эту новую задачу для запуска до или после задачи deploy:migrate, выполнив одно из следующих действий:

before "deploy:migrate", :custom_name
after "deploy:migrate", :custom_name
0 голосов
/ 13 марта 2013

Для моих требований я переопределяю существующую задачу в deploy.rb

namespace :deploy do
  # to Override deploy:migrate task
  task :precompile, :roles => :app, :except => { :no_release => true } do
    run "your modified commands"
  end
  # to override deploy:assets:precompile task
  namespace :assets do
    task :precompile, :roles => :app, :except => { :no_release => true } do
      run "your modified commands"
    end
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...