Server di build continuo (cc.net, hudson, bamboo, ecc.) esperienza di compilazione remota?

9

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.

    
posta Chris Buckett 27.09.2010 - 17:27
fonte

4 risposte

8

Hudson (Aggiornamento: nel mondo di oggi, userei Jenkins, un fork di Hudson.)

Ho usato hudson in ambienti aziendali sia Java che .NET per progetti ad alta visibilità (probabilmente sei stato in alcuni dei siti). Hudson è solido fin dall'inizio, ma la parte migliore è che ci sono molti plugin per fare qualsiasi cosa tu voglia. Hudson è altamente configurabile, ha una grande community ed è davvero facile da configurare in un ambiente cluster se hai bisogno di più build contemporaneamente. È il mio server CI preferito di tutti quelli che ho usato (CC.NET, Hudson e TFS).

Inoltre, puoi utilizzare il plug-in ChuckNorris per fargli avere il pollice in su o verso il basso.

    
risposta data 27.09.2010 - 17:43
fonte
7

Abbiamo affrontato questa domanda qualche tempo fa e abbiamo deciso di utilizzare TeamCity . Abbiamo solo guardato Hudson, CC e TeamCity. La scelta è stata facile: TeamCity è diventato il nostro server di build. Tieni presente che non sono un professionista in questo ed è stata la mia prima esperienza con i server di sviluppo in quel momento.

Hudson - Non avevo idea di cosa fare e dove leggere al riguardo. E anche se potevo capire qualcosa, non c'era un'opzione: troppo lavoro. Ho deciso di dare un'occhiata a CC.

Cruise control - uguale a Hudson, ma in un modo leggermente diverso. Assolutamente nulla può essere capito lì senza un manuale e un sacco di aiuto da Google. Ho appena dato un'occhiata al TC.

TeamCity - TeamCity sembrava il paradiso dopo i primi due. È il più utile da questi tre. Installa, vai al pannello di amministrazione, configura un progetto (mostra dove è SVN, punta a costruire file, specifica copertura / unit test ecc.) E inizia a divertirti. E anche se non posso dire che non ho google nulla, ancora il 95% del processo di installazione è stato molto facile e chiaro. Consiglio vivamente questo strumento. Vai e dai un'occhiata. Ti farà risparmiare un sacco di nervi e tempo:)

Dovrei anche notare che TC non è gratuito. Anche se hanno una versione gratuita che può essere utilizzata in progetti commerciali con alcune limitazioni (max build configs 20) - dai un'occhiata alla loro pagina dei prezzi.

PS Mi sembra che io lavori per TC, ma davvero non lo faccio:)

    
risposta data 26.11.2010 - 16:58
fonte
3

Utilizziamo CC.NET 1.4.

Stiamo cercando di aggiornare a 1.6 ... che incubo.

È potente ... ma SOLO se lo usi correttamente e capisci come tutto combacia. Il che è molto da chiedere a tutto il team. Abbiamo "buildmasters" che hanno accesso al server e possono modificare le configurazioni. Anche così, c'è un sacco di ricerche su Google riguardo a ccnet e l'intera azienda è diventata un gran casino.

Personalmente voglio trasferirmi su TeamCity.

Ti raccomando di stare alla larga da ccnet.

    
risposta data 26.11.2010 - 17:07
fonte
1

buona domanda. Attualmente stiamo anche cercando di scoprire quale strumento si adatta meglio per noi. Quindi potrò raccontarti solo una piccola esperienza. Ma saremmo molto interessati, quale sistema CI hai scelto ora e per quali ragioni. Quindi ti preghiamo di tenerti informato.

Sono molto impressionato di quanto è alto il livello del tuo CI. Devo ammettere che abbiamo meno requisiti perché non eseguiamo ancora i test dell'interfaccia utente e non creiamo istanze di database o simili, usiamo solo i mock per i nostri test unitari.

Ora, per le nostre esperienze fino ad ora:

Per i progetti Java utilizziamo Bamboo che funziona bene con JUnit ed Emma. E non c'è tanto sforzo per creare un nuovo progetto.

Per i progetti .NET, stiamo ancora cercando la soluzione migliore

  • Cruise Control: non siamo riusciti a farlo funzionare ancora a causa di problemi con la connessione al nostro repository

  • TFS:

    a) Sono necessari alcuni passaggi di configurazione per poter eseguire la prima build.

    b) Ci sono alcune insidie in cui devi andare avanti per quanto riguarda i diritti di accesso. Ci sono molti ruoli che puoi definire e devi sapere esattamente quali diritti hanno il tuo processo di compilazione e quali sono i tuoi account di accesso personali. Ma se hai abbastanza tempo per gestire, puoi definire ogni particolare granularità di cui hai bisogno.

    c) Per quanto riguarda le librerie referenziate ci sono anche alcune cose da gestire se vuoi condividere libs per molti progetti e non vuoi gestirli ad ogni singolo progetto

    d) Eseguire il test NUnit non è così facile come pensavamo. È semplice se utilizzi l'esecuzione del test fornita da Visual Studio, ma questo non è NUnit

    e) Non abbiamo ancora provato a eseguire NCover (per prima cosa: -))

  • Hudson: il prossimo strumento che proveremo. Sembra avere un plugin veramente buono e facile per .NET, ti farò sapere come funziona

  • Bamboo: la prima previsione che abbiamo ottenuto: "Too Java specific". Ma forse proveremo comunque il plugin .NET, ti farò sapere

Spero, possiamo continuare questa discussione e scambiare esperienze.

Andy

    
risposta data 12.11.2010 - 12:44
fonte

Leggi altre domande sui tag