2011-08-11 4 views
11

나의 카피ist라노 요리법에서, 나는 다른 작업을 가진 네임 스페이스를 가지고있다 :어떻게 다른 네임 스페이스에서 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" 

정상을 실행하고 싶다. 내 네임 스페이스 내부에서 카피 스트라노 작업. 예를 들어, 일정 수의 릴리스 폴더가 생성 된 경우 정상적인 정리 작업을 자동으로 실행하려고합니다.

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을 어떻게 실행할 수 있습니까?

답변

16

아하, 올바른 구문은 :이 아닌 .을 사용하는 것입니다. 즉 deploy.cleanup, 아니요 deploy:cleanup입니다.

이 작동 :

task :mycleanup do; 
    if releases.length > 50 
    logger.info "Too many releases, runing deploy:cleanup." 
    deploy.cleanup 
    end 
end; 
관련 문제