как построить грабли - PullRequest
       6

как построить грабли

0 голосов
/ 20 августа 2011

Я хотел бы узнать, как построить задачу rake для моего приложения rails 3, которое выполняет две вещи.

  1. Передает активы в CDN
  2. Развертывание к героку

Команды для вышеперечисленных шагов:

 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 '

Предложения о том, как сделать эту работу? Должно ли это быть задачей или чем-то еще?

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 августа 2011

Первая задача - это еще одна задача с граблями, которая будет выполняться, если она зависит от задачи :deployit. Ваш текущий код будет загружать рейк дважды.

Если вы используете систему, подобную предложенной Аруном, вы получите:

task :deployit => 'cache:s3' do
  puts '=== Deploying to Heroku ==='
  system "heroku jammit:deploy --app #{app}"
end
2 голосов
/ 20 августа 2011

Вместо этого используйте системную команду. Для получения дополнительной информации: http://blog.jayfields.com/2006/06/ruby-kernel-system-exec-and-x.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...