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

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск
Разработка программного обеспечения
Процесс разработки ПО
Шаги процесса

Анализ | Проектирование | Реализация | Тестирование | Внедрение | Сопровождение

Модели / Методы

Agile | Cleanroom | Итеративная | RAD | Scrum | RUP | OpenUP | MSF | Спиральная | Водопад | XP

Сопутствующие дисциплины

Конфигурационное управление | Документирование | Управление проектами


Непрерывная интеграция (англ. 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

См. также

Ссылки

cs:Průběžná integrace de:Kontinuierliche Integration en:Continuous integration es:Integración continua fr:Intégration continue pl:Ciągła integracja

Личные инструменты

Served in 0.208 secs.