En el proyecto de carriles estoy trabajando en lo insertan apoyo a rspec, pepino y autotest con este Gemfile (parcial)Plataforma gemas específicas para autotest con bundler
gem 'rspec-rails'
gem 'cucumber-rails'
gem 'autotest-standalone'
gem 'autotest-rails-pure'
gem 'zentest-without-autotest'
Sin embargo, a fin de ejecutar las pruebas con autotest i necesidad de ejecutar bundle exec autotest
de lo contrario se produce un error con este mensaje
$ autotest
loading autotest/cucumber_rails_rspec_rspec2
Error loading Autotest style autotest/cucumber_rails_rspec_rspec2 (no such file to load -- autotest/cucumber_rails_rspec_rspec2). Aborting.
Ahora estoy desarrollando en un Mac y me gustaría para permitir autotest-gruñido y autotest-fsevents joya, pero si inserto esas líneas en mi ~/.autotest
require 'autotest/growl'
require 'autotest/fsevent'
entonces necesito para insertar las gemas correspondientes en el Gemfile y todo funciona, pero se rompe se basa en mi servidor CI (que está en Linux)
¿Cómo resolver esto sin mantener un Gemfile diferente para locales y entornos de CI?
EDIT:
Por el momento he resuelto con estas líneas en Gemfile
if RUBY_PLATFORM.downcase.include?("darwin") # I'm on Mac
gem 'autotest-fsevent'
gem 'autotest-growl'
end
Funciona tanto a nivel local y en el servidor IC, no sé si es algo lío, por el momento parece funcionar sin problemas.
Cualquier forma más limpia de hacerlo es bienvenida.
Edit2:
que me pasa a soluciones grupos. Si bien el parche monopatch anterior funciona bastante bien tanto en desarrollo como para integración continua, le dará un error en la producción si utiliza las tareas de capistrano bundler para implementaciones o si usa la opción bundle install --deployment
(que se recomienda en producción)
Al usar la línea if RUBY_PLATFORM.downcase.include?("darwin")
obtendrá este error al implementar.
# bundle install --deployment --without development test
You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
updated Gemfile.lock to version control.
You have deleted from the Gemfile:
* autotest-fsevent
* autotest-growl
Así que mi solución definitiva a este problema es incluir gemas específicos de la plataforma en un grupo determinado, digamos OSX y, a continuación, en la producción y en el servidor IC excluye el uso de paquete.
Si utiliza Capistrano conseguir un despliegue de poner esto en su config.rb
set :bundle_without, [:development, :test, :osx]
# capistrano bundler task
require "bundler/capistrano"
Utilizo [esta configuración] (https://github.com/fabn/rails-jenkins-template) en mi ci, y me gustaría mantenerlo simple, así que me gustaría mantener mis pasos en ci como simple como 'paquete de instalación; rake spec; rastrillar el pepino' – Fabio
Hago muchas búsquedas para este problema y no hay solución en este momento. Así que voy a aceptar tu respuesta como correcta. – Fabio