2. Непрерывная интеграция (англ. Continuous
Integration) — это практика разработки
программного обеспечения, которая заключается
в выполнении частых автоматизированных сборок
проекта для скорейшего выявления и решения
интеграционных проблем.
Непрерывная интеграция
3. Используется в проектах, где над разными частями
системы разработчики трудятся независимо.
Позволяет снизить трудоёмкость интеграции и
сделать её более предсказуемой за счет наиболее
раннего обнаружения и устранения ошибок и
противоречий
4. Чтобы разработчики вносили свой код в VCS(Version
Control System) по крайней мере каждый день
Сборка продукта происходила в автоматическом
режиме
Выкладка продукта (в том числе, обновление базы
данных) происходила в автоматическом режиме
Тестирование продукта происходило в автоматическом
режиме (насколько это возможно)
Для этого необходимо
5. В любой момент времени имеется достоверная
информация о состоянии исходников в системе
Достаточно легко понять, из-за чего все
сломалось(чаще всего последний коммит) и кто
должен это «чинить»
Если на проекте используется тестирование, то
прогонка тестов при каждом билде дает
некоторую гарантию отсутствия регрессионных
багов
Что это дает
7. Java-базированный фреймворк для непрерывной
сборки программного обеспечения
CruiseControl является бесплатным программным
обеспечением с открытым исходным кодом,
распространяется под BSD-подобной лицензией
Существует версия CruiseControl для .NET
называемая CruiseControl.NET (CCNet) и версия для
Руби, называемая CruiseControl.rb
CruiseControl
8. Серверное программное обеспечение от компании
JetBrains, написанное на языке Java, билд-сервер
для обеспечения непрерывной интеграции
Предварительное тестирование кода перед
коммитом.
Есть несколько вариантов лицензирования:
Professional Server License, Enterprise Server License
и Build Agent License
TeamCity
9. Продукт корпорации Microsoft, представляющий собой
комплексное решение, объединяющее в себе систему
управления версиями, сбор данных, построение
отчетов, отслеживание статусов и изменений по
проекту и предназначенное для совместной работы над
проектами по разработке программного обеспечения
Данный продукт доступен как в виде отдельного
приложения, так и в виде серверной платформы для
Visual Studio Team System (VSTS)
Microsoft Team Foundation Server
10. Проблемы интеграции выявляются и исправляются
быстро, что оказывается дешевле;
Немедленный прогон модульных тестов для свежих
изменений;
Постоянное наличие текущей стабильной версии вместе
с продуктами сборок — для тестирования,
демонстрации, и т. п.
Немедленный эффект от неполного или неработающего
кода приучает разработчиков к работе в итеративном
режиме с более коротким циклом.
Преимущества CI
11. Затраты на поддержку работы непрерывной
интеграции;
Потенциальная необходимость в выделенном
сервере под нужды непрерывной интеграции;
Немедленный эффект от неполного или
неработающего кода отучает разработчиков от
выполнения периодических резервных включений
кода в репозиторий.
Недостатки CI