Является ли непрерывная интеграция достойной для небольших проектов?
Я стремился к непрерывной интеграции в моей компании, так как я присоединился 5 месяцев назад, но, увидев тип приложений, над которыми мы работаем, я начинаю думать, что, возможно, не стоит прилагать усилий для создания каждый проект для непрерывного интегрирования.
Если вы работаете в отделе разработки, где средний проект занимает 2-3 недели, и как только он развертывается, вам редко приходится когда-либо беспокоиться об этом, это непрерывная интеграция, которая стоит того, чтобы настроить его?
Ответы
Ответ 1
Вероятно, зависит от вашего процесса. Если у вас есть модульные тесты, которые охватывают ваш код, то непрерывная интеграция стоит каждого бита. Я предполагаю, что вы, ребята, работаете над одним модулем работы, так как проекты 2-3 недели.
Я не думаю, что люди будут запускать каждый тест для каждого из своих коммитов, и постоянная интеграция здесь помогает.
Другая причина заключается в том, что ваш проект очень модульный. Я работал в системах, где есть много модулей, и разработчик не будет функциональным тестированием всего веб-сайта до его совершения. Вещи могут даже не скомпилироваться должным образом, поскольку другой модуль даже не будет создан, потому что разработчик не выполнил проверку полного кода.
Я бы порекомендовал постоянную интеграцию. С настройками, такими как Hudson и Cruisecontrol, не требуется много времени для настройки и быстрой оплаты.
Ответ 2
Лично я считаю, что CI и различные процессы, которые он поощряет, всегда полезны. Получение настройки CI довольно тривиально, как только вы настроили сервер. Вы в основном просто копируете файл конфигурации из одного проекта, редактируете его и создаете новый проект. Я бы не стал использовать CI из-за "усилий по настройке каждого проекта".
Ответ 3
Непрерывная интеграция - это не только инструмент, но и множество процессов (регулярно фиксируйте, имеют систему контроля версий...).
Что касается программного обеспечения I.C, вы можете установить, настроить и начать использовать Hudson менее чем за 10 минут! Так почему бы вам пойти без какой-либо системы IC?
Ответ 4
Это зависит от того, насколько быстро вы можете настроить автоматическую сборку, а затем подключиться к серверу CI.
.NET
Я видел, как мы перешли от автоматической сборки к автоматизированной сборке для проекта за несколько минут, используя UppercuT. Мы используем это и CruiseControl.NET(в конфигурации мы добавляем строку для каждого проекта b/c, используем препроцессор).
http://code.google.com/p/uppercut/
Несколько хороших объяснений здесь: UppercuT
Ответ 5
Если ваши многочисленные приложения имеют общие компоненты или модули, CI и тесты, вероятно, помогут вам заметить что-то нарушение. Если они на самом деле все отброшены, самонастраивающиеся скрипты, тогда вам может не понадобиться CI, но это непростой вызов.
Ответ 6
Как указывали другие, как только CI настроен, добавление нового проекта тривиально, поэтому я бы сказал, для этого. Одно из преимуществ, которое вы увидите, это то, что, если какой-либо из ваших проектов когда-либо изменится, у вас уже есть CI, и, надеюсь, ваши юнит-тесты готовы идти, поэтому вы не получите никаких неприятных сюрпризов!
Ответ 7
Непрерывная интеграция - это не только обеспечение работоспособности, но и возможность DOCUMENT и TEST процесса выпуска, как это было бы сделано новым разработчиком.
Это гарантирует, что клиент получит то, что было протестировано, а не то, что разработчик просто выбрасывает из своего жесткого диска.
Это может быть чрезвычайно важно для целей обслуживания.