Ecco qui, come avevo promesso,
provo a riassumere e a "formalizzare" un documento che aiuti altri a installare
questo fenomenale strumento di gestione centralizzate delle build che è CruiseControl.NET (d'ora in
avanti CC.NET).
Prerequisiti
- ovviamente una macchina configurata per funzionare
con IIS e framework .NET
- .NET SDK (si, serve anche l'SDK se volete anche
compilare)
- uno strumento per "fare la build", CC.NET ne supposta due nativamente e
poi supporta la build da riga di comando, quindi, in alternativa, serve:
- VS.NET 2003
- NAnt
- MSBuild (il motore di build del futuro VS2005)
- il banale csc.exe
Io ho installato NAnt e
quindi la documentazione sarà basata su quello, ma le stesse funzionalità si
possono ottenere anche con MSBuild. Sconsiglio invece vivamente l'uso di
VS.NET perchè, per primo è "brutto" installare uno strumento del genere su un
server, e poi perchè gli altri due permettono di fare delle cose che VS.NET
neanche si sogna lontanamente
- uno strumento per la gestione del codice sorgente (poi vederemo che non è
realmente necessario)
- Visual Sorce Safe
- Vault
- CVS
- ...
Installazione
Ipotizzando di avere già installato sul server IIS, Framework .NET, e .NET
SDK e Visual Source Safe ora dobbiamo installare NAnt:
NAnt
Per far questo basta andare sul sito nant.sourceforge.net e scaricare
l'ultima versione che ad ora è la 0.85-rc1.
Poi
basta unzippare il contenuto del file in directory a vostro piacimento e
aggiungere alla variabile d'ambiente Path la directory nant\bin.
Per verificare la buona uscita
dell'installazione digitare al prompt dei comandi nant
-help.
E' giunta l'ora di installare CC.NET.
CC.NET
Scaricare l'ultima release di CC.NET, al momento è 0.7 e,
come prima, scompattarla in una directory a vostro piacimento.
Otterete una directory che contiene le seguenti sottodirectory:
- cctray: il
programmino da installare sui PC degli sviluppatori, che serve per monitorare
le build in tempo reale
- doc: ovviamente
contiene la documentazione
- server: il
server che gestisce il processo di build: è disponibile sia come eseguibile
che come servizio
- web:
l'applicazione web che mostra il report di ogni singolo progetto
- webdashboard:
l'applicazione web che mostra il report centralizzato del server e dei singoli
progetti
- webservice: il webservice per gestire
CC.NET
Ora rimuoviamo quello che non serve: per quello che ho provato io, sul server
si possono cancellare tranquillamente le cartelle:
- cctray: serve solo sui client
- doc: meglio tenerseli in locale
- web: la webdashboard contiene le stesse funzioni di
questa cartella e non necessita, come invece questa, di essere replicata per
ogni progetto posto sotto il controllo di CC.NET
- webservice: è ancora in fase di sviluppo, non ha ancora un'utilità pratica
Configurazione
Ora che abbiamo installato tutto, inizia la parte interessante, cioè la
configurazione del server.
CC.NET Server
Come detto sopra, esistono due versione del server, quella da riga di
comando, e il servizio: entrambe accedono allo stesso file di configurazione
ccnet.config, quindi prima useremo il programma da linea di comando, e poi,
quando tutto funziona correttamente, useremo il servizio.
Per prima cosa bisogna creare un file che si chiama ccnet.config con il seguente
contenuto:
1 <cruisecontrol>
2 </cruisecontrol>
E poi possiamo lanciare il programma ccnet.exe (basta farci doppio clic
sopra).
Abbiamo appena attivato il server di gestione delle build
centralizzate CruiseControl.NET.
Ora però dobbiamo modificare il file in modo
che gestisca i progetti che ci interessano.
Per far questo bisogna capire
come è strutturato il file di configurazione.
Ecco qui sotto un esempio, ma vi rimando alla prossima "puntata" per
la spiegazione dettagliata dei blocchi che lo compongono.
1 <cruisecontrol>
2 <project>
3 <name>Project 1</name>
4 <workingDirectory>D:\CCNET-Projects\workingFolder\Project 1</workingDirectory>
5 <artifactDirectory>D:\CCNET-Projects\artifacts\Project 1</artifactDirectory>
6 <webURL>http://ccnet/Controller.aspx?_action_ViewProjectReport=true&server=local&project=Project 1</webURL>
7
8 <sourcecontrol type="vss" autoGetSource="true" applyLabel="false">
9 <project>$/Project 1</project>
10 <username>ccnet</username>
11 <password>ccnet</password>
12 <ssdir>\\VSSServer\VSS</ssdir>
13 <workingDirectory>D:\CCNET-Projects\workingFolder\Project 1</workingDirectory>
14 </sourcecontrol>
15
16 <build type="nant">
17 <executable>D:\Program Files\nant\bin\nant.exe</executable>
18 <buildFile>nant.build</buildFile>
19 <buildArgs>-D:publish.root=D:\CCNET-Projects\Builds\Project 1</buildArgs>
20 </build>
21
22 <triggers>
23 <pollingInterval seconds="60" />
24 </triggers>
25 <publishers>
26 <xmllogger />
27 </publishers>
28
29 </project>
30 </cruisecontrol>