Непрерывная интеграция

Материал из Википедии — свободной энциклопедии

Перейти к: навигация, поиск

Непрерывная интеграция (англ. Continuous Integration) — это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий.

Содержание

[править] Требования к проекту

  • Исходные коды и все, что необходимо для сборки и тестирования проекта, хранится в репозитории системы управления версиями;
  • Операции копирования из репозитория, сборки и тестирования всего проекта автоматизированы и легко вызываются из внешней программы

[править] Организация

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

  • по внешнему запросу,
  • по расписанию,
  • по факту обновления репозитория, и др.

[править] Сборка по расписанию

В случае сборки по расписанию (англ. daily build — русск. ежедневная сборка) дополнительно вводится система нумерации сборок. Обычно каждая сборка нумеруется натуральным числом, которое увеличивается перед очередной сборкой. Исходные тексты и другие исходные данные при взятии их из репозитория системы контроля версий помечаются номером сборки. Благодаря этому точно такая же сборка может быть точно воспроизведена в будущем — достаточно взять исходные данные по нужной метке и запустить процесс снова. Это даёт возможность повторно выпускать даже очень старые версии программы с небольшими исправлениями.

[править] Преимущества

  • проблемы интеграции выявляются и исправляются быстро, что оказывается дешевле;
  • немедленный прогон модульных тестов для свежих изменений;
  • постоянное наличие текущей стабильной версии вместе с продуктами сборок — для тестирования, демонстрации, и т. п.
  • немедленный эффект от неполного или неработающего кода приучает разработчиков к работе в итеративном режиме с более коротким циклом.

[править] Недостатки

  • затраты на поддержку работы непрерывной интеграции;
  • потенциальная необходимость в выделенном сервере под нужды непрерывной интеграции;
  • немедленный эффект от неполного или неработающего кода — отучает разработчиков от выполнения периодических резервных включений кода в репозиторий;

[править] Литература

  • Поль М. Дюваль, Стивен М. Матиас III, Эндрю Гловер. Непрерывная интеграция: улучшение качества программного обеспечения и снижение риска. = Continuous Integration: Improving Software Quality and Reducing Risk (The Addison-Wesley Signature Series). — 2008; Вильямс. ISBN 978-5-8459-1408-8, 0-321-33638-0

[править] См. также

[править] Ссылки

На других языках