Attualmente utilizziamo una volta il server cc.net per il nostro processo di compilazione, che costruisce sia .net (usando msbuild e nant) che java (usando maven e ant).
CC.net monitora il controllo del codice sorgente e attiva una build remota in esecuzione su un server separato. CC.net quindi raccoglie i risultati.
Quando eseguiamo la build remota, in genere:
- esegue nunit o junit o simili usando dati falsi
- esegue facoltativamente uno script DB per creare una nuova istanza di database o ripristinare un database da una posizione nota.
- esegue il selenio o simili per testare l'interfaccia utente
- esegue emma o ncover per la copertura del codice
- costruisce il sistema per vari ambienti di distribuzione (test, accettazione, produzione)
Potremmo avere più build in esecuzione alla volta, alcuni .net e alcuni java (da diversi team di progetto).
È molto dispendioso in termini di tempo far funzionare le build remote quando configuriamo un nuovo progetto e riteniamo che ci debba essere qualcosa di più adatto alle build remote rispetto a cc.net.
Qualcuno ha esperienza con build remote con sistemi di integrazione continua?
Non voglio davvero elenchi di funzionalità di server CI, apprezzerei di più sapere come li hai utilizzati in un ambiente multi-server e multi-server.