Я хочу, чтобы capistrano вызывал rake с помощью --trace, чтобы я мог понять, почему он терпит неудачу. Как мне это сделать? set :rake 'rake --trace'
не работает.
Как я могу запустить rake с --trace внутри capistrano?
comment
Когда вы говорите, что это не работает, что происходит?
- person Thiago Jackiw   schedule 16.08.2011
Ответы (2)
Лучший способ, который я нашел, это:
set :rake, "#{rake} --trace"
Таким образом, вы не перезаписываете переменную rake.
Например, если вы используете bundler, перед этим устанавливается:
"bundle exec rake"
и после:
"bundle exec rake --trace"
person
Camille
schedule
20.10.2011
Скорее всего, ваши пользовательские задачи не используют переменные rake
, а вместо этого жестко кодируют rake, вот пример:
run("rake sass:compile")
Это жестко закодировано и не будет заботиться о вашей настройке set :rake, 'rake --trace'
, вот правильный способ:
run("#{fetch(:rake)} sass:compile")
Или, сокращенно:
run("#{rake} sass:compile")
Вы можете увидеть это на практике в исходном коде Capistrano, в одном месте, где рецепты по умолчанию фактически вызывают rake
, в задаче миграции: https://github.com/capistrano/capistrano/blob/master/lib/capistrano/recipes/deploy.rb#L387
person
Lee Hambley
schedule
16.08.2011
как ни странно, миграция - это то место, где мое развертывание не удавалось, и я хотел включить --trace, поэтому я думаю, что это должно было сработать...
- person John Bachir; 17.08.2011