2011-04-03 24 views
8

La documentación Bündler dice, que con el fin de instalar todos los paquetes necesarios cuando se despliega a través de Capistrano, solo hay que insertarRuby on Rails: Bündler y Capistrano: especifica qué grupos (desarrollo, prueba) deben ser excluidos cuando se despliega

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

en su deploy.rb. Luego, al desplegarse, Capistrano llama al

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

Esto funciona bien.

Sin embargo, tenemos una configuración provisional en nuestro servidor de producción, aislada del sitio real, donde probamos una nueva versión de la aplicación con datos de producción en vivo (clonado y cortafuegos). Allí, necesitamos gemas de prueba y desarrollo para ser instaladas.

¿Cómo especifico la línea de comandos de capistrano aquí? ¿Hay parámetros que pueda usar, o tengo que configurar mi propia tarea de capistrano para sobrescribir Bundler?

¡Gracias!

Respuesta

18

de escritura diferentes tareas sin duda Que sea sencillo:

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 

Sin embargo, si desea utilizar las opciones de línea de comandos que podría cambiar en el valor suministrado:

cap deploy target=staging 

Y dentro de su despliegue. rb archivo se puede utilizar el valor de la opción como:

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

también hay un 'pr más oper 'objeto de configuración que puede usar. He encontrado una referencia aquí: http://ryandaigle.com/articles/2007/6/22/using-command-line-parameters-w-rake-and-capistrano

+2

utilizo una extensión Capistrano llamada 'de varias etapas', que permite diferentes entornos de destino sean especificado (en mi caso, puesta en escena y producción). Configuración: bundle_without solucionó mi problema por ahora. ¡Gracias! – Jens

+0

Desde que respondí a esta pregunta hace más de un año, ahora uso también la gema de extensión capistrano-multietapas. – Scott

0

No tengo una configuración para confirmar de forma independiente, pero RAILS_ENV = 'desarrollo' la obtiene?