Ciao a tutti.
In molti mi hanno scritto chiedendomi cosa è il Continuous Integration e come poterlo integrare all'interno del Team Foundation Server di Microsoft.
Il continuous integration è una filosofia legata alla metodologia Agile (adesso non mi chiedete cosa sia anche la metodolia agile altrimenti non riesco a finire questo piccolo post. Per i più curiosi questo è il link da cui partire:
http://it.wikipedia.org/wiki/Metodologia_agile
http://www.agilemovement.it/ ).
La continuous integration (da ora in poi CI altrimenti impiego 10 minuti per scriverlo ogni volta) permette di fare delle build scalari ogni qualvolta viene fatto il checkin dell'applicazione.
ES: Immaginate che per realizzare una build giornaliera o addirittura settimanale ci vogliano 10 ore ogni volta, inoltre non siamo certi che in quel preciso momento la build esca perfetta senza errori, cosa fare?
Microsoft ha riolto questo problema utilizzando la CI, che permette di creare build in continuazione e quindi evitare di aspettare la build settimanale prima di sapere se tutto è andato a buon fine. Un'altro aspetto positivo della CI è la possibilità tramite Visual Studio di poter evitare che gli utenti possano fare checkin se la build non è andata a buon fine.
Purtroppo Visual Studio Team Foundation Server non prevede la CI direttamente, ma bisogna installarla manualmente. Per farlo, bisogna seguire questi piccoli passi:
1) Installate il file CI.MSI (http://www.freeaspx.it/aspcode/ci.msi) sul server dove avete installato il Team Foundation Server
2) Dopo aver lanciato il setup, il software vi chiederà su quale server web volete installare il webservice, selezionate "Team Foundation Server"
3) Finite l'installazione
4) Andate nella cartella dove è stato installato il webservice (solitamente la cartella C:\Program Files\Microsoft Visual Studio 2005 Team Foundation Server\TF Setup) e modificate il web.config inserendo la seguente voce per ogni Tipologia di Build (Build Type):
<add key="1" value="TeamServer=http://vostroserver:8080;TeamProjectName=Progetto;BuildType=Tipo Build"/>
5) Salvate il file web.config e aprite la console "SDK Command Prompt" del Framework 2.0 e lanciate il seguente comando:
Bissubscribe /eventType CheckinEvent /address http://vostroserver:8080/ci/notify.asmx /deliveryType Soap /domain http://vostroserver:8080
In questo modo avete aggiunto un evento che ogni volta che il Team Foundation Server lancia l'evento Check In richiama il webservice notify.asmx e controlla se per quel progetto esiste una build automatica.
NB: Ricordatevi che le build automatiche le settate prima sul Team FOundation Server tramite il Team Explorer e poi dovete inserire una nuova voce all'interno del file web.config all'interno della cartella CI.
Spero che sia stato utile questo articolo, non mi rimane che augurarvi buona programmazione a tutti
Fulvio