Автоматизированный Semver в Git + Jenkins - как вы вернетесь к версии, чтобы выпустить исправление?
Поэтому мы хотим автоматизировать процесс управления версиями в приложении, предпочтительно с использованием соглашения SEMVER.
Итак, мы пришли к следующей идее:
- Несколько функций / исправлений / основных ветвей, которые выдают в запрос.
develop
ветка. - Когда Дженкинс строит
develop
выполняется ветвь, она берет файл JSON, скажем,versioning
ветвь, так что теперь он знает текущее управление версиями (скажем, 2.0.0) - используя некоторые вещи из журнала git, мы сможем определить, в какие ветви были объединеныdevelop
и таким образом определить, нужно ли нам увеличивать значения MAJOR, MINOR или PATCH (или некоторые из них сразу).
Это прекрасно работает, пока нам не понадобится выполнить одно из следующих двух действий:
- Допустим, текущая разработка на 2.1.1 (1 патч, 1 функция слиты, но еще не в prod!). Теперь нам нужно срочно выпустить еще одно критическое исправление
production
(то есть в 2.0.0) - но теперь JSON-файл в ветке управления версиями, а также в ветке разработки указывают на 2.1.1. Как мы справляемся с выпуском 2.0.1 как срочным исправлением ошибки? - Скажем, одна из функций, которые мы выпустили для
develop
плохо, нам нужно разработать откат (так что теперь это будет 2.0.1) - как мы справимся с этим?