Краткий ответ: «Вы не делаете».Перехватывает вызовы deploy
deploy: update_code
deploy: update_code, {: кроме => {: no_release => true}}
Копирует ваш проект на удаленные серверы.Это первый этап любого развертывания;перемещение обновленного кода и ресурсов на серверы развертывания.Однако вы редко будете вызывать эту задачу напрямую;вместо этого вам следует вызвать задачу deploy’ task (to do a complete deploy) or the
update '(если вы хотите выполнить задачу `restart' отдельно).
Вам нужно будет убедиться, что вы установили переменную: scm для программы управления исходным кодом, которую вы используетеиспользуют (по умолчанию это: subversion) и переменную: deploy_via для стратегии, которую вы хотите использовать для развертывания (по умолчанию: checkout).
, которая делает следующее одним махом:
- Код проверки
- Zip-код
- перемещение кода на удаленный сервер
- очистка локального кода
(с некоторыми вариациями в зависимости от настроек развертывания).
Однако я смог обойти это, используя команды загрузки и выгрузки.
tmp_path = "/tmp/#{release_name}/public"
download "#{current_path}/public/javascripts", "#{tmp_path}/javascripts/":via => :scp, :recurisve => true
system "jammit -o #{tmp_path}/javascripts -c #{tmp_path}/javascripts/assets.yml"
upload "#{tmp_path}/javascripts/common.js", "#{current_path}/public/javascripts", :via => :scp
system "rm -rf #{tmp_path}"
Мне это не нравитсяпоскольку он не такой чистый, но он выполняет работу так, как мне нужно.