Как я могу вызвать задачу Capistrano из другого пространства имен, чем: deploy?
В моем рецепте 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
Aha, правильный синтаксис - использовать .
, а не :
. т.е. deploy.cleanup
, no deploy:cleanup
.
Это работает:
task :mycleanup do;
if releases.length > 50
logger.info "Too many releases, runing deploy:cleanup."
deploy.cleanup
end
end;