2011-08-20 4 views
0

두 가지 작업을 수행하는 레일 3 애플리케이션 용 레이크 작업을 작성하는 방법을 배우고 싶습니다.레이크 작업을 수행하는 방법

  1. 는 CDN
  2. 에 자산을 넣 위의 단계에 대한

명령 Heroku가로 배포합니다 : 여기

rake cache:s3 
heroku jammit:deploy --app #{app} 

내가 /lib/tasks/deployer.rake이 무엇

task :deployit do 
    puts '=== Storing assets on s3 ===' 
    run "rake cache:s3" 
    puts '=== Deploying to Heroku ===' 
    run "heroku jammit:deploy --app #{app}" 
end 

def run(cmd) 
    shell cmd 
    if $?.exitstatus == 0 
    display "[OK]" 
    else 
    display "[FAIL]" 
    end 
end 

그러나 '정의되지 않은 메소드`shell'이 main : Object '에 해당하는 오류가 발생했습니다.

이 작업을 수행하는 방법에 대한 제안 사항이 있습니까? 이것이 일이나 다른 일이되어야합니까?

감사합니다.

+0

http://rake.rubyforge.org/classes/Rake/Task.html#M000119 – rubish

답변

2

첫 번째 작업은 :deployit 작업의 종속성 인 경우 실행되는 또 다른 레이크 작업입니다. 현재 코드는 레이크를 두 번로드합니다.

당신은 아룬 같은 시스템을 사용하는 경우

는 당신이 얻을 것이다 제안 :

task :deployit => 'cache:s3' do 
    puts '=== Deploying to Heroku ===' 
    system "heroku jammit:deploy --app #{app}" 
end 
+0

Heroku가 보석이므로 jammit : deploy를 호출하는 것이 가능할 수도 있습니다. 나는 보석을 잠깐 살펴 봤지만 어떤 방법을 불러야 하는지를 발견하지 못했습니다. – suweller

관련 문제