Al momento, il processo di distribuzione corrente nel mio lavoro si basa sul tagging dal trunk e sul passaggio di vari siti Web PHP per i client sui nostri server QA e Production. Mentre questo è semplice dal livello tecnico, diventa davvero noioso quando si hanno più di una dozzina di aggiornamenti su una dozzina di siti diversi che devono uscire in un giorno.
Verso questo scopo, sto implementando il seguente stack:
- SVN
- Hudson
- Capistrano
E funzionerà così:
- Il codice va in
svn
-
svn
trigger di hook post-commithudson
-
hudson
esegue uno scriptcapistrano
da distribuire sul server di sviluppo - i project manager verificano il server di sviluppo e, se il bug è corretto, vanno in
hudson
e promuovono la build -
hudson
esegue uno script di post-promozione che etichetta e distribuisce il codice su qualsiasi server specificato dalla promozione
Capistrano (insieme al framework symfony) verrà utilizzato per migrare i database.
Mi manca qualcosa qui? Non ho mai fatto niente di più complicato della sovversione prima, quindi è per questo che lo sto chiedendo.