У меня есть некоторые конкретные вопросы об управлении версиями в Continuous Delivery. Я думаю, что я понимаю глобальный рабочий процесс, который более или менее таков:
1) Code
2) Push to version Control
3) Continuous Integration (unit, integration and end-to-end auto testing)
4) Artifacts deployment
Как насчет управления версиями? Как управлять версиями сборки?
Скажем, что мы работаем над проектом Maven с семантическим управлением версиями: major.minor.build
.
Когда разработчик фиксирует изменения в VCS и CI-сервере, выполните сборку, должен ли сервер CI увеличивать версию сборки и создавать тег в VCS?
Эта версия сборки присутствует в исходном коде? Если это так, после каждого нажатия на VCS разработчик должен обновить проект, так как сервер CI зафиксировал изменения (увеличение версии) в проекте.
Я немного смущен, и я хотел бы понять практический процесс работы с CD.