Я ищу хороший процесс для управления номером версии моего проекта, когда моя главная ветка имеет защиту ветвления GitHub.Как увеличить номера версий в защищенных ветвях GitHub?
В идеальном мире, когда вы слились с веткой «выпуска», ваш сервер непрерывной интеграции запускал свои тесты, а затем автоматически увеличивал номер версии вашего проекта и возвращался в вашу систему SCM.
Однако с защитой от ветвления вы не можете зафиксировать свою ветку без запроса Pull, поэтому у вас есть catch-22, где ваш CI-сервер не может нажать на вашу защищенную ветку, когда пытается обновить номер версии.
Я могу думать о нескольких рабочих обходных, все из которых являются субоптимальными:
- соорудить систему, чтобы ваш сервер CI будет делать PR для обновления версии. Я не уверен, что вы даже можете сделать это с GitHub, но даже если это так, создается два запроса Pull для каждого «реального» PR, что неудобно.
- Удалить Защиту Branch - теперь каждый может проталкивать что-либо к ветвям, и вы должны управлять своими разработчиками через ручного процесс
- Обновления версии вручную до запроса тягового. это немного лучше, чем # 2, но это открывает двери для разработчиков, чтобы делать ошибки при выборе номера новой версии или слияния нужного номера версии с неправильной ветвью.
Я надеюсь, что есть другие варианты, о которых я не думал.
Мы используем Javascript и npm, но я считаю, что проблема связана с языком несовместима, конечно же, такая же проблема будет существовать с Java и Maven, например.
Но это не значит, что версия id вернулась в проект правильно? – JBCP
Информация о версии отсутствует в проекте вообще. Его в «git tag», который jenkins ставит каждый раз, когда видит обновление на главной ветке. Проект просто знает, как вывести информацию о версии из последнего 'тега'. Так что да, нет, чтобы вернуться назад. –
@JBCP, пожалуйста, отметьте ответ как принятый, если это поможет. –