Continuous Integration
Граф зависимостей
Описание
Непрерывная интеграция — это практика разработки, когда на каждое изменения кода запускается набор быстрых проверок. Если проверки не прошли, то разработчик должен исправить найденные проблемы.
Ценность
Преимущества:
- Позволит ускорить разработку, скорость нахождения ошибок возрастет за счет быстрой обратной связи, затраты на исправление дефектов уменьшатся, на момент нахождения дефекта разработчик будет в контексте задачи. После интеграции своих изменений разработчики будут реже отвлекаться на доработки кода. Релизный цикл станет более предсказуемым.
- Разработчики могут чаще интегрировать свои изменения в кодовую базу продукта. Благодаря проверкам можно быть уверенным, что изменения не повлияли на другие компоненты приложения. Быстрые проверки дают раннюю обратную связь по качеству продукта, можно не выходить из состояния потока и не переключая контекст вернуться к исправлению ошибки. Процесс интеграции становится проще.
- PO получает продукт более высокого качества за счет проверок.
- Release manager подготовка к релизу становится более предсказуемой. Пропадают длительные ожидания на merge множества изменений в релизную версию приложения/поставки.
Последствия отсутствия:
- Merge изменений становится длительным и болезненным событием. Никто не хочет merge'ить свои изменения и откладывают merge до последнего. Все хотят merge'ить изменения еще реже, усугубляя тем самым ситуацию.
- В merge'е участвуют тысячи строк изменений. Возникает множество конфликтов. Никто не знает как разрешение конфликтов повлияет на приложение. На разрешение конфликтов и устранение возникших ошибок тратится много времени.
Критерии оценки 9
Ветки в системе контроля версий "живут" не дольше 2 рабочих дней
Проверки, запускаемые на коммит, выполняются не дольше 10 минут
Перед слиянием обязательно запускаются проверки
Если проверки завершились ошибкой, то слияние не выполняется до их исправления
Ветки в Bitbucket "живут" не дольше 2 рабочих дней
Проверки запускаемые на коммит выполняются не дольше 10 минут
Стейджи фрагментированны (билд, версия, деплой, скан)
Проверки запускаются редко, перед merge'ем, часто не проходят (завершаются ошибкой), но merge все равно производится
Проверки не дают информации о качестве приложения. Проверки показывают разный результат, наличие или отсутствие ошибок, на одной и той же версии приложения
Ресурсы 1
-
Стейджи пайплайна фрагментированы, пример - https://gitlab.com/express42/starsmap/reference-pipelines/-/blob/main/.gitlab-ci.yml?ref_type=heads#L14
Метаданные
- ID:
- 28f3539c-c2b4-457a-9de3-371882a2ff20
- Slug:
continuous-integration- Версия:
- 2.0
- Проекты:
- Client2/Project1 Client1/Project1
- Критерии:
- 4 survey 5 check
- Создано:
- 2026-04-30
- Обновлено:
- 2026-04-30