Особисто я коли-небудь використовував CruiseControl і CruiseControl.Net. Причина цього пов'язана з економікою. Вони досить стійкі, і як тільки ви їх налаштуєте, вам дійсно потрібно зробити мало для його підтримання. Спільнота користувачів, як правило, дуже корисна, і це може бути розширено до ваших потреб.
Однак, є кілька комерційних пропозицій, про які я знаю (один JetBrains, інший - Atlassian), які пропонують кращий досвід та комерційну підтримку. Я мав намір спробувати ці пропозиції, але справді ще не мав шансів.
Інструменти CI відіграють важливішу роль для компільованих мов, ніж інтерпретовані мови, але це не означає, що інструмент CI витрачається на інтерпретовані мови. Якщо у вас є кілька проектів, які залежать один від одного, і ви хочете, щоб зміни не випадково не порушили його залежності - інструменти CI є безцінними.
Існує три загальні класи проблем, за допомогою яких інструменти CI можуть допомогти вам знайти:
- Помилки компіляції - якщо підпис класу змінюється таким чином, що розбиває залежність, найкраще знати про це перед немічними годинами результатів.
- Логічні помилки - якщо поведінка класу змінюється таким чином, що руйнує залежності, краще про це знати рано. Це потрібно перевірити за допомогою якогось автоматизованого тестування, найчастіше одиничного тестування.
- Тестування на прийняття - якщо у вас є автоматизований набір тестів для запуску готового продукту, краще проводити їх часто.
Інтерпретовані мови не компілюються, тому помилок компіляції не потрібно вловлювати. Однак інші дві проблеми досить поширені, що інструменти CI корисні для проектів у Ruby / Python / Perl / тощо.
Ключовим словом як в логічних помилках, так і в пунктах тестування приймання є "автоматизоване" тестування. Якщо у вас немає набору тестів, якими може запуститися машина, то вам справді не вистачає більших переваг інструментів CI. Автоматизовані набори можна створити з часом, тому ви можете почати з малого.
Редагувати
Дивіться цю приємну діаграму для порівняння функцій великої кількості інструментів CI (про багато з яких я не знав):
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix