Personalmente, ho sempre usato CruiseControl e CruiseControl.Net. La ragione per questo ha a che fare con l'economia. Sono ragionevolmente stabili e una volta impostati, c'è davvero poco da fare per mantenerlo. La comunità degli utenti è di solito molto utile e può essere estesa alle tue esigenze.
Detto questo, ci sono un paio di offerte commerciali disponibili 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 in realtà non ho ancora avuto una possibilità.
Gli strumenti CI hanno un ruolo più importante da giocare con le lingue compilate rispetto alle lingue interpretate, ma ciò non vuol dire che lo strumento CI sia sprecato nelle lingue interpretate. Quando hai diversi progetti che dipendono l'uno dall'altro, e vuoi assicurarti che una modifica non interrompa accidentalmente le sue dipendenze: gli strumenti CI hanno un valore inestimabile.
Esistono tre classi generali di problemi che gli strumenti CI possono aiutarti a individuare:
- Errori di compilazione - se la firma di una classe cambia in modo tale da infrangere le dipendenze, è meglio informarla prima delle ore di durata di un deliverable.
- Errori logici - se il comportamento di una classe cambia in un modo che interrompe le dipendenze, è meglio sapere in anticipo. Questo deve essere controllato da una sorta di test automatico, più comunemente test delle unità.
- Test di accettazione: se disponi di una suite automatica di test da eseguire sul prodotto finito, è consigliabile eseguirli spesso.
Le lingue interpretate non sono compilate, quindi non ci sono errori di compilazione da catturare. Tuttavia, gli altri due problemi sono abbastanza comuni che gli strumenti CI sono utili per i progetti in Ruby / Python / Perl / etc.
La parola chiave negli errori logici e nei punti di test di accettazione è il test "automatizzato". Se non si dispone di una serie di test eseguibili da una macchina, in realtà non si dispone dei maggiori vantaggi degli strumenti CI. Le suite automatizzate possono essere create con il tempo, quindi puoi iniziare in piccolo.
Modifica
Guarda questo bel grafico per il confronto delle caratteristiche di un gran numero di strumenti CI (molti dei quali non sapevo):
link