2010-04-01 5 views
9

Quiero comenzar a probar el JavaScript en mis aplicaciones Rails con qUnit y me pregunto cómo mantener el JavaScript de prueba y la página HTML del corredor de prueba bajo control de versión (Estoy usando Git, por supuesto), pero mantenlos fuera del servidor de producción cuando implemente la aplicación con Capistrano. Mi primer pensamiento es permitir que Capistrano envíe todo el código como siempre, incluidos los archivos de prueba, y escribir una tarea para eliminarlos al final del proceso de implementación. Esto parece una especie de truco, sin embargo. ¿Hay alguna manera más clara de decirle a Capistrano que ignore ciertas partes del repositorio cuando se despliega?Excepto que los archivos se implementen con Capistrano mientras aún esté bajo control de versión con Git

Respuesta

0

Usted podría tener esas pruebas en una rama de prueba (en el que se funden con su oficina principal antes de cualquier prueba)

De esa manera, cuando se pide Capistrano para desplegar lo que está en su rama principal, no existe ninguna prueba de ningún tipo está siempre incluido.

7

Hay muchas maneras de lograr esto, puede mantener sus pruebas en una rama de prueba de la aplicación como lo sugirió VonC, pero eso significaría que haría todos los cambios en su rama principal y luego sincronizarlos con su prueba rama. (No sin sus méritos, pero a veces con dolor)

Puede usar el archivo .gitignore en su directorio.

Cualquier archivo que agregue a esto no se agregará a su repositorio. Como capistrano simplemente extrae publicaciones de su repositorio, no tener los archivos incluidos los mantendrá fuera de su servidor de producción.

Por último, pero no menos importante, si desea que los archivos de prueba en su repositorio principal de control de versiones, se puede añadir una receta a su archivo de configuración/deploy.rb .. algo así como:

desc "Remove Test Files" 
    task :remove_test_files , :roles => :web do 
     sudo %{rm -f #{current_path}/public/javascripts/testfile.js} 
     sudo %{rm -f #{current_path}/public/javascripts/anothertestfile.js} 
    end 

after 'deploy:remove_test_files' 

y especificar los archivos que desea eliminar, esto eliminará los archivos que desee cuando implemente. :)

Cualquiera de los anteriores funcionará. Elija el método que funcione para usted.

+0

no vi su respuesta en el momento. +1 – VonC

+0

Gracias Von. Lo aprecio. –

+0

@VonC & Dustin - ¿Cómo recomendaría el manejo si sus archivos de tapa están en su repositorio de implementación pero no los quiere en su servidor de producción? Serán implementados en releases/variable_directory_name – csi

Cuestiones relacionadas