2011-08-11 10 views
11

W moim CAPISTRANO receptury, mam nazw z różnych zadań:Jak wyzwalać zadanie Capistrano z innej przestrzeni nazw niż: wdrażać?

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

Te niestandardowe zadania są wywoływane za pośrednictwem linii, jak to na szczycie mojej receptury:

after "deploy", "mystuff:mycleanup" 

Chcę wykonać normalne zadanie capistrano z mojej przestrzeni nazw. Na przykład, chcę automatycznie wyzwalać normalne zadanie czyszczenia, jeśli pewna liczba folderów uwalniania zbudowaliśmy:

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

Niestety nazywając deploy:cleanup nie działa od wewnątrz mojego nazw. Jak mogę wykonać deploy:cleanup?

Odpowiedz

16

Aha, poprawną składnią jest użycie ., a nie :. tj. deploy.cleanup, nr deploy:cleanup.

to działa:

task :mycleanup do; 
    if releases.length > 50 
    logger.info "Too many releases, runing deploy:cleanup." 
    deploy.cleanup 
    end 
end; 
Powiązane problemy