Ruby on Rails: Bundler & Capistrano: укажите, какие группы (разработка, тестирование) должны быть исключены при развертывании - PullRequest
8 голосов
/ 03 апреля 2011

Документация Bundler гласит, что для установки всех необходимых пакетов при развертывании через Capistrano нужно всего лишь вставить

require 'bundler/capistrano' # siehe http://gembundler.com/deploying.html

в его deploy.rb.Затем, после развертывания, Capistrano вызывает

  * executing "bundle install --gemfile .../releases/20110403085518/Gemfile \
    --path .../shared/bundle --deployment --quiet --without development test"

Это прекрасно работает.

Однако у нас есть промежуточная установка на нашем производственном сервере, изолированная от реального живого сайта, где мы тестируемвыпуск приложения с (клонированными и огненными) данными о реальном производстве.Там нам нужно установить гемы для тестирования и разработки.

Как мне указать здесь командную строку capistrano?Есть ли параметры, которые я могу использовать, или мне нужно настроить собственную задачу capistrano, чтобы перезаписать Bundler?

Спасибо!

Ответы [ 3 ]

18 голосов
/ 03 апреля 2011

Написание различных заданий, безусловно, будет проще:

task :production do
  # These are default settings
  set :bundle_without, [:development, :test]
end

task :staging do
  set :bundle_without, [:test]
  # set :rails_env, 'staging'
end

Однако, если вы хотите использовать параметры командной строки, вы можете включить предоставленное значение:

cap deploy target=staging

А внутри вашего файла deploy.rb вы можете использовать значение параметра как:

if target == "staging"
  set :bundle_without, [:test]
  # do other stuff here
end

Существует также более «правильный» объект конфигурации, который вы можете использовать. Я нашел ссылку на это здесь: http://ryandaigle.com/articles/2007/6/22/using-command-line-parameters-w-rake-and-capistrano

2 голосов
/ 27 июля 2013

Я думаю, что самый простой способ - просто добавить set: bundle_without в файлы среды развертывания, используя это:

https://github.com/capistrano/capistrano/wiki/2.x-Multistage-Extension

0 голосов
/ 03 апреля 2011

У меня нет настройки для независимого подтверждения, но RAILS_ENV = 'development' получает ее?

...