Я хочу, чтобы capistrano вызывал рейк с помощью --trace, чтобы я мог понять, почему он не работает. Как мне это сделать? set :rake 'rake --trace' не работает.
set :rake 'rake --trace'
Лучший способ, который я нашел, это:
set :rake, "#{rake} --trace"
Таким образом, вы не перезаписываете переменную rake .
Например, если вы используете bundler , для этого установлено:
"bundle exec rake"
и после:
"bundle exec rake --trace"
Скорее всего, ваши пользовательские задачи не используют переменные rake, а вместо этого жестко кодируют грабли, вот пример:
rake
run("rake sass:compile")
Это жестко запрограммировано, и вас не волнует ваша настройка set :rake, 'rake --trace', вот правильный путь:
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