La Build Machine per SubText è quasi 
completata, ora manca solo il trasfermento tramite FolderShare al membro del team che la hosterà nella sua farm.
Cosa fa questa build machine?
  - ogni 2 minuti verifica sul repository SVN 
  hostato da SourceForge la presenza di aggiornamenti al codice 
  
- se è stato fatto una modifica aspetta altri 5 minuti 
  nel caso avvenga un'altro check-in (così si evita di fare due build troppo 
  ravvicinate) 
  
- se sono passati 5 minuti senza nessun check-in viene attivato, 
  con NAnt, il processo di build che consiste in:
  - cancellazione di tutte le directory \bin e \obj 
    (così da avere una build pulita) e dei precedenti file di log 
 
  
- aggiornamento del numero di versione in base al 
    numero di build progressivo 
 
  
- build in modalità Debug di tutti i progetti 
    VS che compongono l'applicativo 
 
  
- build in modalità debug del progetto di test 
 
  
- esecuzione di test MbUnit all'interno del processo di NCover       
     : si esegue così lo unit testing e se ne calcola contemporaneamente 
    il code coverage 
 
  
- analisi degli assembly usando FxCop: questo sicuramente è un modo per 
  deprimersi... ma porta ad un miglior codice.. forse   
- build in modalità di Release 
 
  
- archiviazione della build di Release in un 
    file zip nominato subtext-major.minor.revision.build.zip 
 
  
- viene fatto il calcolo della complessità e della 
    metrica del codice, usando Vil        
         
 
  
- e in ultimo viene generato un report riassuntivo        del code coverage (sapere 
  precisamente le righe coperte dai test è un po' troppo per il report web)
 
- terminato il processo di build viene fatto il merge 
  di tutti i file di log e questo gigantesco file viene archiviato come stato 
  della build 
  
- viene mandata una mail a tutti gli sviluppatori ogni volta che cambia lo 
  stato della build (quando da successfull passa a failed e viceversa)
Per rendere la cosa più complessa ora sul server sta 
girando la versione 1.1.0.2185 di CCNET, cioè l'ultima build disponibile. Vi chiederete 
perchè mai ho deciso di usare l'ultima build e non l'ultima versione rilasciata?
Fondamentalmente perchè ha due feature aggiuntive molto interessanti: la 
prima è che CCTray, l'applicativo per monitorare l'andamento delle build 
funziona anche via http (banalmente accede ad un file XML con l'elenco dello 
stato delle ultime build) e non solo via remoting come invece accade con la 
1.0.x. E poi perchè è in corso lo sviluppo di un grafico con l'andamento delle build, a mio avviso 
molto utile per capire lo stato di salute del progetto.
Alla prossima per la procedura d'installazione step-by-step
PS: FolderShare è stato comprato da Microsoft a Novembre 2005, e fa ora parte della loro 
strategia per Windows Live
powered by IMHO 1.3
		
			posted @ martedì 18 aprile 2006 13:30