Esistono molte soluzioni possibili al tuo problema. È possibile scrivere facilmente script per automatizzare i passaggi del processo o utilizzare una soluzione di integrazione continua già pronta all'uso. Descriverò in breve la prima soluzione, in cui scrivi gli script per farlo da solo.
Sul server in cui è distribuita la tua webapp mywebapp , scrivi una piccola shell di script mywebapp_deployment_tool
che distribuisce l'ultima versione dell'applicazione. Ti suggerisco di mantenere un ramo dedicato live
o release
corrispondente alla versione distribuita più recente e che è distinto dal ramo di sviluppo. Il lavoro dello script sarebbe quindi:
- Verifica il ramo
live
più recente.
- Riavvia il server (forse
kill -HUP
farebbe).
Ora crea un repository git di proprietà dell'infrastruttura di distribuzione¹¹ sul server e configura un hook git che attiverà il tuo mywebapp_deployment_tool
ogni volta che un commit viene trasferito al live
branch.
Sul tuo repository di sviluppo, configura un hook git che invierà automaticamente le merges al ramo live
nel repository sul server. Questo, a sua volta, attiva lo script di distribuzione.
Nota inoltre che VirtualBox o jail di FreeBSD può essere utilizzato per configurare un ambiente in cui puoi testare la tua webapp prima di unire le modifiche a live
.
¹ Questo significa solo che questo repository non dovrebbe essere usato per lo sviluppo.