Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Управление процессом разработки ИС Новый топик    Ответить
 git, CI и релизы  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1822
Добрый день!

Все известные мне CI-средства выполняют chtckout из git в "detached head".
Вроде всё правильно- это позволяет собрать именно с того коммита, который запрошен.
Но тут приходит version'нинг. Например mvn deploy (да и любое другое средство) должен выполнить git push чтобы записать изменение версии после сборки релиза. И тут приходит ошибка, мол "ьфыеук у тебя сутарел давно".
Я сейчас решаю это использование git clone вместо git fetch но это во-первых замедляет сборку, во-вторых видится мне каким-то костылём.
Как правильно выполнить сборку релиза на агенте при том, что после git fetch мастер не соответствует апстриму?
23 апр 18, 08:20    [21359537]     Ответить | Цитировать Сообщить модератору
 Re: git, CI и релизы  [new]
hVostt
Member

Откуда:
Сообщений: 16793
Alexey Tomin,

Можно обойтись вообще без push, версию вычислять из тегов/бранчей. Точнее, лично я считаю, что пуш с bump version, это ужасный, отвратительный костыль, и никогда этого не делаю.

Вот, например, тула для вычисления версии из гита https://gitversion.readthedocs.io/en/latest/
Мы не пользуемся, у нас свой скрипт :) Но суть примерно такая же.
24 апр 18, 18:35    [21365688]     Ответить | Цитировать Сообщить модератору
 Re: git, CI и релизы  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1822
hVostt
Можно обойтись вообще без push, версию вычислять из тегов/бранчей. Точнее, лично я считаю, что пуш с bump version, это ужасный, отвратительный костыль, и никогда этого не делаю.


Спасибо!
Интересная мысль, буду её думать :)
Собственно тэгов достаточно- автоматически меняется только последняя цифра- в мавене можно писать "1.10-SNAPSHOT" а по тегам (1.10.0, 1.10.1 например) понимать, что надо собрать 1.10.2
Собственно для фичевых веток так уже сделано, а вот в мастере традиционнх ранится полная версия, строго равная версии библиотеки/приложения.
25 апр 18, 07:35    [21366501]     Ответить | Цитировать Сообщить модератору
 Re: git, CI и релизы  [new]
hVostt
Member

Откуда:
Сообщений: 16793
Alexey Tomin
Собственно для фичевых веток так уже сделано, а вот в мастере традиционнх ранится полная версия, строго равная версии библиотеки/приложения.


Если работать по гит-флоу (git-flow), то в мастере все комиты должны быть помечены релизными ветками. А develop вычисляется из последнего достижимого тега в истории +1 для минорной-версии, например, последний достижимый тег 1.9.0, значит в дев будет 1.10.0 автоматом.

Хотфиксы нумеруют патч версию, т.е. если в мастере залиты хотфиксы, например, 1.9.7 (семь патчей было), в дев всё равно будет 1.10.0.

Плюс к этому используются релиз-теги (-alpha, -beta, -support, -request<-issue>... etc.)
25 апр 18, 15:25    [21368184]     Ответить | Цитировать Сообщить модератору
 Re: git, CI и релизы  [new]
hVostt
Member

Откуда:
Сообщений: 16793
hVostt
должны быть помечены релизными веткам


*тегами
25 апр 18, 15:25    [21368187]     Ответить | Цитировать Сообщить модератору
 Re: git, CI и релизы  [new]
anatolyz
Member

Откуда:
Сообщений: 1
Можно обойтись вообще без push.
192.168.0.1
4 янв 19, 06:00    [21778211]     Ответить | Цитировать Сообщить модератору
 Re: git, CI и релизы  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1822
anatolyz
Можно обойтись вообще без push.
192.168.0.1


Какая связь? Винды у нас давно нигде нет, ci-сервери и git-сервер это разные машины.
5 янв 19, 11:55    [21778694]     Ответить | Цитировать Сообщить модератору
Все форумы / Управление процессом разработки ИС Ответить