Utilice capistrano para actualizar solo con git en lugar de implementar una versión completamente nueva

Tengo una aplicación muy pequeña que incluso usa sqlite3 en producción porque nunca va a haber problemas con las escrituras múltiples, etc. Quiero usar capistrano para implementar las actualizaciones de esta aplicación de forma rápida y sencilla. Pero cuando ejecuto el cap production deploy , vuelca toda la aplicación en una carpeta de lanzamiento y la enlaza a la current . Sé que puedo include el file production.sqlite3 en deploy.rb para conservar los datos, pero aún parece excesivo clonar todo el repository cada vez que deseo enviar una actualización.

No pude encontrar nada en la documentation de Capistrano para actualizaciones.

Esencialmente todo lo que necesito un tope para hacer es

  1. asegúrese de que mi GIT HEAD local sea igual que el maestro

  2. SSH en el server de prod y hacer un git pull

  3. Ejecutar rake db:migrate si es necesario

  4. Ejecutar rake assets:clean assets:precompile

  5. Reiniciar Phusion Passenger

¿Cómo podría lograr eso?

Solo escribe tu propio script bash o ruby ​​que haga esto. Creo que te estás perdiendo el sentido de Capistrano. La clonación de todo el repository le permite implementar retrotraer, dejando la versión anterior tal como está. Tiene en count los deployments que fallan y no interferirá con su sitio de producción durante el process de implementación.