Подтвердить что ты не робот

Как я могу вызвать задачу 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?

4b9b3361

Ответ 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;