Excepto que los files se implementen con Capistrano mientras todavía está bajo control de versión con Git

Quiero comenzar a probar el JavaScript en mis aplicaciones de Rails con qUnit y me pregunto cómo mantener el JavaScript de testing y la página HTML del corrector de testings bajo control de versión (estoy usando Git, por supuesto) pero mantenerlos fuera del server de producción cuando Despliego la aplicación con Capistrano. Mi primer pensamiento es permitir que Capistrano envíe todo el código como siempre, incluidos los files de testing, y escribir una tarea para eliminarlos al final del process 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 repository cuando se despliega?

A partir del 30 de agosto de 2013, puede simplemente crear un file .gitattributes y export-ignore los files / carpetas de su elección.

 features/ export-ignore spec/ export-ignore 

Referencia: https://github.com/capistrano/capistrano/pull/626

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

Puede usar el file .gitignore en su directory.

Cualquier file que agregue a esto no se agregará a su repository. Como capistrano simplemente extrae publicaciones de su repository, no tener los files incluidos los mantendrá fuera de su server de producción.

Por último, pero no por ello less importante, si quiere los files de testing en su repository principal para el control de versiones, puede agregar una receta a su file config / 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 especifique los files que desea eliminar, esto eliminará los files que desee cuando implemente. 🙂

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

Puede tener esas testings en una twig de testing (en la que fusiona su twig principal antes de cualquier testing)

De esa manera, cuando le pides a Capistrano que deployment lo que está en tu twig principal, no se incluye ninguna testing de ningún tipo.