Стоит ли непрерывная интеграция для небольших проектов? - PullRequest
20 голосов
/ 22 января 2009

Я настаивал на непрерывной интеграции в моей компании с тех пор, как присоединился 5 месяцев назад, но, увидев тип приложений, над которыми мы работаем, я начинаю думать, что это может не стоить усилий по настройке каждого из них и каждый проект для непрерывной интеграции.

Если вы работаете в отделе разработки, где средний проект занимает 2-3 недели, и после его развертывания вам редко приходится беспокоиться об этом, стоит ли постоянная интеграция с его настройкой?

Ответы [ 7 ]

12 голосов
/ 22 января 2009

Вероятно, зависит от вашего процесса. Если у вас есть модульные тесты, которые охватывают ваш код, то непрерывная интеграция того стоит. Я предполагаю, что вы, ребята, все работаете над одним модулем работы, так как проекты занимают 2-3 недели.

Не думаю, что люди будут запускать каждый тест для каждого из своих коммитов, и непрерывная интеграция здесь очень помогает.

Другая причина была бы, если ваш проект сильно модульный. Я работал в системах, где есть много модулей, и разработчик не будет функционально тестировать весь сайт перед его фиксацией. Вещи могут даже не скомпилироваться должным образом, так как другой модуль не будет скомпилирован, потому что разработчик не извлек полный код.

В любом случае, я бы порекомендовал непрерывную интеграцию. С такими настройками, как Hudson и Cruisecontrol, настройка не занимает много времени и быстро окупается.

3 голосов
/ 22 января 2009

Лично я считаю, что CI и различные процессы, которые он поддерживает, всегда полезны. Настройка CI довольно проста, если вы настроили сервер самостоятельно. Вы просто копируете файл конфигурации из одного проекта, редактируете его и создаете новый проект. Я бы не стал использовать CI из-за «усилий по настройке каждого проекта».

2 голосов
/ 22 января 2009

Непрерывная интеграция - это не только инструмент, но и набор процессов (регулярно совершать, иметь систему контроля версий ...).

Что касается программного обеспечения I.C, вы можете установить, настроить и начать использовать Hudson менее чем за 10 минут! Так почему бы вам не использовать IC-систему?

1 голос
/ 16 мая 2009

Это действительно зависит от того, насколько быстро вы можете настроить автоматическую сборку и затем подключить ее к CI-серверу.

.NET

Я видел, как мы за несколько минут с помощью UppercuT перешли от автоматической сборки к автоматической сборке проекта. Мы используем это и CruiseControl.NET (в конфигурации мы добавляем строку для каждого проекта, поскольку мы используем преимущества препроцессора).

http://code.google.com/p/uppercut/

Несколько хороших объяснений здесь: UppercuT

0 голосов
/ 26 января 2009

Непрерывная интеграция не только гарантирует, что все работает, но и позволяет ДОКУМЕНТОВАТЬ и ТЕСТИРОВАТЬ процесс выпуска, как это будет сделано новым разработчиком.

Это гарантирует, что заказчик получит то, что было протестировано, а не то, что разработчик просто выбросит со своего жесткого диска.

Это может быть чрезвычайно важно для целей обслуживания.

0 голосов
/ 22 января 2009

Как уже отмечали другие, после настройки CI добавление нового проекта является тривиальным, поэтому я бы сказал, пойти на это. Одно из преимуществ, которое вы увидите, это то, что если какой-либо из ваших проектов do когда-либо изменится, у вас уже есть CI и, надеюсь, ваши модульные тесты готовы к работе, чтобы вы не получили никаких неприятных сюрпризов! *

0 голосов
/ 22 января 2009

Если в ваших многочисленных приложениях используются какие-либо общие компоненты или модули, CI и тесты, скорее всего, помогут вам заметить что-то сломанное. Если все они на самом деле немного выброшены, являются автономными скриптами, тогда вам может не потребоваться CI, но это сложный вызов.

...