Osobiście używałem tylko CruiseControl i CruiseControl.Net. Powodem tego jest ekonomia. Są dość stabilne, a po ich skonfigurowaniu naprawdę niewiele trzeba zrobić, aby je utrzymać. Społeczność użytkowników jest zazwyczaj bardzo pomocna i można ją rozszerzyć na Twoje potrzeby.
To powiedziawszy, dostępnych jest kilka komercyjnych ofert (jedna od JetBrains, druga od Atlassian), które oferują lepszą konfigurację i wsparcie handlowe. Chciałem wypróbować te oferty, ale naprawdę nie miałem jeszcze okazji.
Narzędzia CI odgrywają ważniejszą rolę w przypadku języków skompilowanych niż języki interpretowane, ale nie oznacza to, że narzędzie CI jest marnowane na języki interpretowane. Jeśli masz kilka projektów, które są od siebie zależne, i chcesz mieć pewność, że zmiana nie zepsuje przypadkowo jej zależności - narzędzia CI są nieocenione.
Istnieją trzy ogólne klasy problemów, które narzędzia CI mogą pomóc złapać:
- Błędy kompilacji - jeśli podpis klasy zmienia się w sposób, który niszczy zależności, najlepiej wiedzieć o tym przed upływem godzin dostarczenia.
- Błędy logiczne - jeśli zachowanie klasy zmienia się w sposób przerywający zależności, najlepiej o tym wiedzieć wcześniej. Należy to sprawdzić za pomocą pewnego rodzaju testów automatycznych, najczęściej testów jednostkowych.
- Testy akceptacyjne - jeśli masz zautomatyzowany zestaw testów do uruchomienia na gotowym produkcie, najlepiej przeprowadzać je często.
Języki interpretowane nie są kompilowane, więc nie ma żadnych błędów kompilacji do wyłapania. Jednak dwa pozostałe problemy są na tyle powszechne, że narzędzia CI są przydatne w projektach w Ruby / Python / Perl / etc.
Kluczowym słowem zarówno w błędach logicznych, jak i punktach testowych akceptacji jest testowanie „automatyczne”. Jeśli nie masz zestawu testów, które można uruchomić na komputerze, naprawdę brakuje Ci większych zalet narzędzi CI. Zautomatyzowane apartamenty można budować z czasem, dzięki czemu możesz zacząć od małych.
Edytować
Zobacz ten ładny wykres dla porównań funkcji wielu narzędzi CI (z których wielu nie wiedziałem):
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix