Personnellement, je n'ai utilisé que CruiseControl et CruiseControl.Net. La raison en est liée à l'économie. Ils sont raisonnablement stables et une fois que vous les avez installés, il n'y a vraiment pas grand-chose à faire pour les maintenir. La communauté d'utilisateurs est généralement très utile et peut être étendue à vos besoins.
Cela dit, je connais quelques offres commerciales disponibles (une par JetBrains, l'autre par Atlassian) qui offrent une meilleure expérience de configuration et un support commercial. J'avais l'intention d'essayer ces offres, mais je n'ai vraiment pas encore eu la chance.
Les outils CI ont un rôle plus important à jouer avec les langages compilés que les langages interprétés, mais cela ne veut pas dire que l'outil CI est gaspillé en langages interprétés. Lorsque vous avez plusieurs projets qui dépendent les uns des autres et que vous voulez vous assurer qu'un changement ne casse pas accidentellement ses dépendances - les outils CI sont inestimables.
Il existe trois classes générales de problèmes que les outils CI peuvent vous aider à détecter:
- Compiler les erreurs - si la signature d'une classe change d'une manière qui brise les dépendances, il est préférable de le savoir avant les heures de gain d'un livrable.
- Erreurs logiques - si le comportement d'une classe change d'une manière qui rompt les dépendances, il est préférable de le savoir tôt. Cela doit être vérifié par une sorte de test automatisé, le plus souvent des tests unitaires.
- Test d'acceptation - si vous avez une suite automatisée de tests à exécuter sur le produit fini, il est préférable de les exécuter souvent.
Les langages interprétés ne sont pas compilés, il n'y a donc aucune erreur de compilation à détecter. Cependant, les deux autres problèmes sont suffisamment communs pour que les outils CI soient utiles pour les projets dans Ruby / Python / Perl / etc.
Le mot clé à la fois dans les erreurs logiques et les points de test d'acceptation est le test "automatisé". Si vous ne disposez pas d'une suite de tests qu'une machine peut exécuter, alors vous manquez vraiment les plus grands avantages des outils CI. Les suites automatisées peuvent être construites avec le temps, vous pouvez donc commencer petit.
modifier
Voir ce joli graphique pour les comparaisons de fonctionnalités d'un grand nombre d'outils CI (dont beaucoup je ne connaissais pas):
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix