Personalmente, ho sempre usato CruiseControl e CruiseControl.Net. La ragione di ciò ha a che fare con l'economia. Sono ragionevolmente stabili e una volta impostati, c'è davvero poco da fare per mantenerlo. La comunità di utenti è generalmente molto utile e può essere estesa alle tue esigenze.
Detto questo, ci sono un paio di offerte commerciali di cui sono a conoscenza (una di JetBrains, l'altra di Atlassian) che offrono una migliore esperienza di installazione e supporto commerciale. Ho intenzione di provare queste offerte, ma davvero non ho ancora avuto occasione.
Gli strumenti CI hanno un ruolo più importante da svolgere con le lingue compilate rispetto alle lingue interpretate, ma ciò non significa che lo strumento CI sia sprecato in lingue interpretate. Quando hai diversi progetti che dipendono l'uno dall'altro e vuoi assicurarti che una modifica non rompa accidentalmente le sue dipendenze, gli strumenti di CI sono inestimabili.
Esistono tre classi generali di problemi che gli strumenti CI possono aiutarti a rilevare:
- Errori di compilazione: se la firma di una classe cambia in modo tale da spezzare le dipendenze, è meglio conoscerla prima delle ore trascorse di un deliverable.
- Errori logici: se il comportamento di una classe cambia in modo da interrompere le dipendenze, è meglio conoscerlo in anticipo. Questo deve essere verificato da una sorta di test automatizzato, più comunemente test unitari.
- Test di accettazione: se si dispone di una suite automatizzata di test da eseguire sul prodotto finito, è consigliabile eseguirli spesso.
Le lingue interpretate non vengono compilate, quindi non ci sono errori di compilazione da rilevare. Tuttavia, gli altri due problemi sono abbastanza comuni che gli strumenti CI sono utili per i progetti in Ruby / Python / Perl / ecc.
La parola chiave sia negli errori logici che nei punti di collaudo è il test "automatizzato". Se non disponi di una serie di test che una macchina può eseguire, allora manchi davvero i maggiori vantaggi degli strumenti CI. Le suite automatizzate possono essere costruite con il tempo, in modo da poter iniziare in piccolo.
modificare
Vedi questo bel grafico per i confronti di funzionalità di un gran numero di strumenti CI (molti dei quali non sapevo):
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix