CruiseControl vs TeamCity per l’integrazione continua?

Vorrei chiederti quale ambiente di build automatizzato consideri migliore, in base all’esperienza pratica. Sto pensando di fare un po ‘di .Net e qualche sviluppo Java, quindi mi piacerebbe avere uno strumento che supporti entrambe queste piattaforms.

Ho letto e scoperto CruiseControl.NET , utilizzato sullo sviluppo StackOverflow e TeamCity con il supporto per gli agenti di compilazione su piattaforms OS diverse e basato su diversi linguaggi di programmazione. Quindi, se hai qualche esperienza pratica su entrambi, quale preferisci e perché?

Attualmente sono principalmente interessato alla facilità d’uso e alla gestione dello strumento, molto meno al fatto che CC è open source e TC è sobject a licenza ad un certo punto quando si hanno molti progetti da eseguire (perché, io ne ho bisogno per una piccola quantità di progetti).

Inoltre, se c’è qualche altro strumento che soddisfa i suddetti e ritieni che valga la pena di essere consigliato, sentiti libero di includerlo nella discussione.

    Ho lavorato su e con gli strumenti di integrazione continua da quello che ha generato Cruise Control (versione java). Ho provato quasi tutti a un certo punto. Non sono mai stato più felice di me con TeamCity. È molto semplice da configurare e offre ancora una grande quantità di energia. La pagina delle statistiche di compilazione che mostra i tempi di costruzione, il conteggio dei test unitari, la frequenza di trasmissione ecc. È molto bella. Anche la home page del progetto di TeamCity è molto preziosa. Per semplici progetti .NET è sufficiente indicare a TeamCity dove si trova la soluzione e quali sono gli assembly testati e questo è tutto ciò di cui ha bisogno (oltre alla posizione di controllo del codice sorgente). Abbiamo anche usato alcuni complicati script MSBuild e fatto il concatenamento della build. Ho anche partecipato a due aggiornamenti di TeamCity e sono stati indolore.

    CruiseControl.NET funziona anche bene. È più difficile da configurare, ma ha una storia più lunga, quindi è facile trovare soluzioni sul web. Poiché CruiseControl.NET è open source, hai anche la possibilità di aggiungere o modificare qualsiasi cosa tu voglia. Avevo usato CruiseControl.NET sin dal suo rilascio e ho scritto alcuni dei primi codici per cc.tray (per fortuna riscritti da qualcuno che conosceva meglio).

    Anche Cruise, da ThoughtWorks, sembra abbastanza buono, ma non vedo ragioni convincenti per passare. Se avessi iniziato un nuovo progetto potrei fare un tentativo, ma TeamCity ha fatto un ottimo lavoro nel semplificare le cose semplici rendendo il complesso abbastanza indolore.

    Modifica: siamo appena passati a TeamCity 5.0 poche settimane fa ed è stato un altro aggiornamento indolore. Ci permette di sfruttare le migliori capacità di copertura del codice e il supporto GIT. Ora stiamo anche utilizzando le funzionalità di commit personalizzate e pre-testate in uso da un po ‘di tempo. Ho solo pensato di aggiornare la risposta per indicare che TeamCity continua a migliorare ed è ancora facile da usare.

    Ero / Sono un grande fan di CC.NET. Attualmente abbiamo 5 progetti in CruiseControl e funziona alla grande. Scrivere file di configurazione con la mano può essere doloroso, ma va bene.

    Ma .

    Dopo lo screencast di Kona: Continuous Integration e Better Unit Test (il primo 1/3 su TeamCity) controllerò anche TeamCity. Adoro il cruscotto test unità integrato e l’interfaccia di configurazione.

    Penso che tutti dovrebbero guardare questo video prima di scegliere CC.NET o TeamCity.

    ps: spero che ci sia anche un prezioso video CC.NET sulla rete.

    Il mio server CI preferito è di gran lunga Hudson. Facile da configurare e gestire, tanti grafici utili per mostrare le tendenze agli sviluppatori e ai non sviluppatori e gratuiti.

    Sto usando TeamCity attualmente su un progetto e sono generalmente soddisfatto, ma molti dei grafici che genera non sono particolarmente utili, ed è più complicato da configurare rispetto a Hudson.

    Detto questo, TeamCity è potente, gratuito per molti usi e ha una caratteristica killer: Remote Run. Puoi “pre-impegnare” il tuo assegno direttamente da IDEA o Eclipse, eseguire una o più configurazioni di build sul server TeamCity e solo eseguire il commit delle modifiche se la compilazione ha esito positivo (ad esempio, compila e tutti i test superano).

    Dato che è ansible far funzionare sia TeamCity sia Hudson in poche ore, potrebbe valere la pena afferrarli entrambi e eseguirli fianco a fianco, insieme a qualsiasi altro (come CruiseControl) a cui si possa pensare. Se non si riesce a sopportare rapidamente un server CI per effettuare un confronto side-by-side, almeno si dispone di un punto dati per una facile installazione e / o configurazione.

    Li ho usati entrambi con successo su diversi progetti. Dal punto di vista organizzativo e amministrativo, Team City è molto più facile da gestire. Non devi hackerare con i file .config come fai con CC e l’installazione è un gioco da ragazzi. Dato che non hai molti progetti consiglierei Team City su CC fino a quando non arriverai al punto che Team City costa $$.

    Ho usato sia CC.net che TeamCity. Ho il compito di installare e installare TeamCity per la mia organizzazione (5 sviluppatori). La nostra organizzazione utilizza alcune pratiche e strumenti non comuni (almeno per le organizzazioni delle nostre dimensioni), come Perforce per il controllo del codice sorgente e agenti di compilazione multipli in esecuzione su sistemi operativi eterogenei, che hanno causato alcuni problemi iniziali di configurazione. Tuttavia, il supporto via e-mail è stato assolutamente di prim’ordine per far sì che tutto fosse pronto. Ho ricevuto risposte alle mie stupide domande in pochi minuti letteralmente.

    L’interfaccia è intuitiva e retriggers, oltre che ricca di funzionalità. Il prodotto si sente molto costoso. La configurazione è semplice e l’interfaccia Web è abbastanza intelligente da aggiornarsi senza il riavvio dell’agente o dei servizi server, né l’aggiornamento della pagina.

    Ho l’impressione che stiamo usando quasi tutte le funzionalità avanzate del prodotto e non abbiamo trovato alcun bug fino ad ora. Integrazione con Ndepend, script NAnt nidificati, etichettatura della versione Perforce, nome, lo stiamo facendo.

    Consiglio vivamente TeamCity a tutti coloro che sono alla ricerca di un server di integrazione continuo o di qualsiasi server di creazione.

    Senza voler gettare strumenti alternativi su di te 🙂

    Hudson è una grande alternativa open source, ho usato CC e CC.net e confesso di pensare che siano strumenti fantastici. Sto pensando di passare a Hudson in quanto sembra molto più facile da configurare e mantenere.

    https://hudson.dev.java.net/

    Assicurati che il sistema che decidi si riduca al numero di progetti di cui avrai bisogno per gestire …

    Io uso CruiseControl.Net ma non lo consiglierei per la costruzione di molti progetti … Ho un arrangiamento (forse un po ‘strano) in cui ho molte librerie statiche C ++ che compongo in applicazioni. Ogni libreria dipende da altre librerie e le app eseguono un set di librerie e build. Ogni lib ha una suite di test. Ogni app ha una suite di test. Costruisco per 5 compilatori e varianti di piattaforms (Windows).

    La prima cosa che ho trovato è che i trigger di progetto di CC.Net non sono proprio ciò di cui hai bisogno e il multi-trigger non funziona bene con i trigger di progetto. Il modo in cui i trigger del progetto funzionano (usano la comunicazione remota per connettersi al server in cui è archiviato il progetto (anche se si tratta di un progetto gestito dalla stessa istanza di CC.Net) e quindi estrarre tutti i progetti da quel server e cercare l’elenco in sequenza cercando il progetto che ti interessa …) significa che non si adattano bene. Una volta superato un certo numero di progetti, CC.Net utilizzerà la maggior parte della CPU per la macchina di compilazione.

    Certo, è open source, quindi puoi sistemarlo … E sono sicuro che va bene per un piccolo numero di progetti non interdipendenti.

    Per ulteriori dettagli sui problemi riscontrati e alcune patch per CC.Net, vedere qui http://www.lenholgate.com/archives/cat_ccnet.html

    Ho recentemente installato cc .net. È una grande applicazione ma richiede un po ‘di pazienza. Potrai modificare i file di configurazione nel blocco note molto 🙂

    È passato un po ‘di tempo quindi è ben supportato e normalmente puoi trovare qualcuno che ha già fatto ciò che vuoi fare prima. Anche l’interfaccia web è .net, il che è stato un vantaggio per noi dato che siamo un negozio Microsoft.

    Non ho usato TeamCity, ma ne ho sentito parecchi consigli e sembra carino.

    Ho avuto un’esperienza di installazione e gestione di CruiseControl (versione Java) su Linux durante la mia precedente azienda. Come la maggior parte delle persone suggerisce, non è la cosa più banale da configurare. È necessario comprendere la sua struttura per ottenere la configurazione praticabile / gestibile. Tuttavia, una volta superata questa gobba, sento che CruiseControl è abbastanza flessibile da permetterti di fare cose diverse per adattarsi a diversi scenari.

    Inoltre, la documentazione di CruiseControl, la sua pagina wiki ha anche alcune informazioni utili.

    Non ho esperienza diretta con TeamCity. Anche se la sua funzione di commit pre-test sembra abbastanza interessante.

    L’altro strumento CC che potresti dare un’occhiata è Bamboo di Atlassian. È molto più facile da configurare e l’interfaccia è più bella. Tuttavia, non è flessibile come quello offerto da CruiseControl.

    Una terza opzione da prendere in considerazione: la crociera di Thoughtworks. È basato su CruiseControl, ma offre molte più funzioni, una configurazione più semplice, ecc. Ecc. Non gratis (o open source).

    http://studios.thoughtworks.com/cruise-continuous-integration

    Uso Teamcity da circa 1 anno e mezzo e ho una grande esperienza. Ho integrato un certo numero di progetti .Net e Java e ho usato strumenti come MSBuild, Maven ecc. Ho trovato Teamcity piuttosto semplice da configurare e lavorare. Sono riuscito a far funzionare CI anche per alcuni progetti sql, il che era un po ‘un incubo che avrebbe potuto essere peggiore con altri strumenti di configurazione.
    Recentemente aggiornato a Teamcity 8.0.6 che è stato indolore. Inoltre Teamcity fornisce un’API REST che è molto utile in alcuni scenari. Se si utilizza PowerShell per l’automazione delle build, sono disponibili numerosi script di integrazione Psake / Teamcity su GitHub