Как я могу вызвать задачу Capistrano из другого пространства имен, чем: deploy? - PullRequest
11 голосов
/ 11 августа 2011

В моем рецепте capistrano у меня есть пространство имен с различными задачами:

namespace :mystuff do
  task :mysetup do; ... end;
  task :mytask1 do; ... end;
  task :mytask2 do; ... end;
  task :mycleanup do; ... end;
end

Эти пользовательские задачи запускаются через строки, подобные этой в верхней части моего рецепта:

after "deploy", "mystuff:mycleanup"

Я хочу выполнить обычную задачу capistrano из моего пространства имен.Например, я хочу автоматически запускать обычную задачу очистки, если создано определенное количество папок выпуска:

task :mycleanup do;
  if releases.length > 50
    logger.info "Too many releases, runing deploy:cleanup."
    deploy:cleanup #***THIS DOESN'T WORK***
  end
end;

К сожалению, вызов deploy:cleanup не работает из моего пространства имен.Как я могу выполнить deploy:cleanup?

1 Ответ

16 голосов
/ 11 августа 2011

Ага, правильный синтаксис - использовать ., а не :. т.е. deploy.cleanup, нет deploy:cleanup.

Это работает:

task :mycleanup do;
  if releases.length > 50
    logger.info "Too many releases, runing deploy:cleanup."
    deploy.cleanup
  end
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...