Cosa mi manca dal mio stack CI?

4

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ì:

  1. Il codice va in svn
  2. svn trigger di hook post-commit hudson
  3. hudson esegue uno script capistrano da distribuire sul server di sviluppo
  4. i project manager verificano il server di sviluppo e, se il bug è corretto, vanno in hudson e promuovono la build
  5. 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.

    
posta CamelBlues 10.12.2011 - 00:11
fonte

3 risposte

2

Manca una cosa importante - come si fa a tornare indietro se la compilazione fallisce? In particolare, come si fa a scattare il database prima della distribuzione?

Non sono orribilmente familiare a Capistrano, quindi potrebbe riguardarlo. Ma una lettura veloce della pagina del progetto non indica che lo faccia.

    
risposta data 10.12.2011 - 00:45
fonte
1

Ho avuto quasi esattamente la stessa domanda di recente, e mi sono imbattuto in questo libro:

link

È rivolto a PHP, ma molti dei processi che descrive possono essere implementati (anche se in modo simile, ma leggermente diverso) in altre lingue!

Direi che è un must per qualsiasi team di sviluppo / sviluppo serio.

    
risposta data 10.12.2011 - 02:07
fonte
1

Consegna continua è un libro che dovresti leggere. Ma penso che troverai che il consiglio principale che riceverai da esso corrisponda ai consigli che hai ricevuto nei commenti: usa un DVCS invece di SVN e ottieni la copertura del test (unità e integrazione) risolta.

Vorrei aggiungere a questo, utilizzare Jenkins invece di Hudson. Oracle ora possiede Hudson e Jenkins si era ramificata proprio prima che prendessero il sopravvento. Il supporto open-source di una community molto coinvolta è in grado di out-strip del supporto di Oracle abbastanza rapidamente.

    
risposta data 10.12.2011 - 03:22
fonte

Leggi altre domande sui tag