PRO

Как автоматизировать версионирование с помощью git tags и semantic versioning?

Автоматическое версионирование часто строят на annotated tags и правилах semantic versioning: major.minor.patch. Тег фиксирует релизную точку, а CI или release-бот определяет следующую версию по типу изменений или по истории коммитов.
Подробный ответ

Базовая идея

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 может по тегу или по истории коммитов определить следующую версию, сформировать релиз и опубликовать артефакты.

Оцени свой прогресс

Честно оцени своё понимание этого вопроса, чтобы мы могли построить твой учебный трек максимально эффективно.
Читать в блоге