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.