Strategies for Continuous Integration Builds

  • Ad ogni Checki-in.
  • Dopo un numero preciso di check-ins.
  • Dopo un intervallo di tempo.
  • Dopo un numero preciso di check-ins o dopo un'intervallo di tempo.
  • Ad una data/orario prefissato.

 

Ad ogni Checki-in:

PRO:

  • Ultime modifiche subito disponibili per il Team di test.

CONTRO:

  • In un grosso progetto rischiamo di avere una frequenza di build troppo elevata, sovraccaricando il server di Team Build.

 

Dopo un numero preciso di check-ins:

PRO:

  • Il server di build non viene sovraccaricato e abbiamo una build abbastanza aggiornata.

CONTRO:

  • L'ultimo check-in potrebbe esser fatto a fine giornata e il team di test potrebbe trovare la versione corrente solamente il giorno successivo.

 

Dopo un intervallo di tempo:

PRO:

  • Il server di build non viene sovraccaricato e abbiamo una build abbastanza aggiornata.

CONTRO:

  • Ad ogni build abbiamo un numero variabile di codice aggiornato. Potremmo ritrovarci build con una modifica e build con 100 modifiche, dove potremmo aver problemi a capire in quale parte del codice abbiamo inserito un bug.

 

Dopo un numero preciso di check-ins o dopo un'intervallo di tempo:

PRO:

  • E' una buona alternativa dai due metodi dai quali deriva.
  • Crea un build dopo un certo numero di check-ins o dopo un certo intervallo di tempo.
  • Il server di build non viene sovraccaricato e abbiamo una build abbastanza aggiornata.

CONTRO:

  • Se settato in maniera non corretta può creare più problemi che altro. Bisognerebbe settare un numero minimo di check-ins prima di fare una build se ci orientiamo sulle modifiche.

Ad una data/orario prefissato:

PRO:

  • Crea un build in specifici giorni della settimana ad un orario.
  • Il server di build non viene per nulla sovraccaricato.

CONTRO:

  • La build ottenuta non sarà allineata al codice nel source control prima del giorno-ora impostati.

Tutte queste strategie di Build possono essere intrecciate con delle policy di check-in per non sovraccaricare il server di build.

Ad esempio potremmo accettare il codice in check-in solo se i test ritornano un esito positivo e solo se il codice scritto può esser associato ad un Work Item.

Altre strategie di building, come creare una build ad ogni ora, può essere implementata in due maniere; o utilizzando Microsoft Windows® Task Scheduler:

  1. Eseguire il TfsBuild così:
    TfsBuild start <<TeamFoundationServer>> <<TeamProject>> <<BuildTypeName>>
  2. Inserire il comando in un file di batch, specificando il percorso completo del TfsBuild
    "<driver>\Program Files\Microsoft Visual Studio 9\Common7\IDE\TFSBuild" start <<TeamFoundationServer>> <<TeamProject>> <<BuildTypeName>>
  3. Creare un task apposito.

potremmo anche definire una build per ogni ora del giorno; sarebbe cmq un peso da gestire.

posted @ martedì 16 settembre 2008 14.52

Print

Comments on this entry:

# re: Strategies for Continuous Integration Builds

Left by Luca Minudel at 16/09/2008 22.16
Gravatar
riporto alcune smell che mi è capitato di notare sulla build automatica

- la build x la maggior parte del tempo non è rotta e quando serve c'è - è lo smell generale che è ok :)

- spesso quando la build si rompe è difficile capire quale check-in l'ha rotta e di chi è e passa troppo tempo prima di sistemarla => passa troppo tempo tra il check-in e la build

- il tempo di esecuzione build (compilazione, test) è troppo lungo o sovraccarica troppo i test => gli unit test potrebbero essere troppo poco unitari, i progetti potrebbero avere troppe dipendenze tra loro, la build potrebbe fare troppe cose




# re: Strategies for Continuous Integration Builds

Left by Salvatore Di Fazio at 16/09/2008 22.21
Gravatar
Luca ti sto rubando le colorazioni.
Mi piacciono troppo i tuoi post :D

# re: Strategies for Continuous Integration Builds

Left by Luca Minudel at 17/09/2008 0.04
Gravatar
no prob- sono sotto licenza Creative Commons :D

Your comment:



 (will not be displayed)


 
 
 
Please add 5 and 7 and type the answer here:
 

Live Comment Preview: