Непрерывная интеграция
Процесс разработки ПО | |
Шаги процесса | |
---|---|
Анализ | Проектирование | Реализация | Тестирование | Внедрение | Сопровождение | |
Модели / Методы | |
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
См. также
Ссылки
ar:تكامل متواصل cs:Průběžná integrace de:Kontinuierliche Integration en:Continuous integration es:Integración continua fr:Intégration continue pl:Ciągła integracja
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....