Как автоматизировать версионирование с помощью git tags и semantic versioning?
Подробный ответ
Базовая идея
Semantic versioning задаёт формат версий как MAJOR.MINOR.PATCH. Git tags используются как стабильные метки релизов, от которых можно вычислять следующую версию и собирать release notes.
Как это обычно автоматизируют
создают annotated tag на релизном коммите;
CI определяет следующую версию по правилам SemVer или conventional commits;
пайплайн публикует артефакты и пушит новый tag в репозиторий;
для монорепо используют префиксы тегов или отдельные схемы на компонент.
На что обратить внимание
Важно договориться, кто создаёт теги и на каком этапе: вручную, через merge в main или автоматически через release workflow. Иначе версия может стать недетерминированной.
Как ответить на собеседовании
Я бы автоматизировал версионирование через annotated git tags и правила semantic versioning. CI может по тегу или по истории коммитов определить следующую версию, сформировать релиз и опубликовать артефакты.
Оцени свой прогресс