Непрерывная интеграция - это практика разработки программного обеспечения, которая заключается в выполнении частых автоматизированных сборок проекта для скорейшего выявления и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет наиболее раннего обнаружения и устранения ошибок и противоречий.
Преимущества: 1) проблемы интеграции выявляются и исправляются быстро, что оказывается дешевле;
2) немедленный прогон модульных тестов для свежих изменений; 3) постоянное наличие текущей стабильной версии вместе с продуктами сборок — для тестирования, демонстрации, и т. п. 4) немедленный эффект от неполного или неработающего кода приучает разработчиков к работе в итеративном режиме с более коротким циклом.
Недостатки: 1) затраты на поддержку работы непрерывной интеграции; 2) потенциальная необходимость в выделенном сервере под нужды непрерывной интеграции; 3) немедленный эффект от неполного или неработающего кода — отучает разработчиков от выполнения периодических резервных включений кода в репозиторий.
Средства непрерывной интеграции: 1) Bamboo. 2) Hudson и Jenkins. 3) CruiseControl. 4) TeamCity. 5) BuildBot. 6) Travis CI.