Сейчас у нас деплоится в продакшн всё, что находится в мэйне, а для активной разработки используется отдельная ветка - dev. Она тоже деплоится, но на свой поддомен.
Проблемы возникают при выпуске новых релизов. dev и main должны существовать параллельно на протяжении долгого времени и иногда вливаться одна в другую. Для поддержания синхронизации между ними нужно проводить танцы с бубном: сначала замерджить dev в main, потом замерджить мердж-коммит из main в dev.
Это не очень весело, поэтому хочется сделать более удобную деплой систему. Благо гитхаб позволяет в воркфлоу интегрировать эвент release - то есть создание нового релиза.
Хочется, что бы новая система брэнчинга и деплоя выглядела так:
Активная разработка идёт в main
От main отделяются небольшие ветки, которые потом сквошом или ребейзом вливаются в main
При ПРе в main самая последняя версия деплоится на поддомен с девелопмент-версией (там сейчас dev)
При публикации релиза (pre-release и драфты игнорируются) в main, этот релиз деплоится на продакшн-сервер
Сразу предусмотрим случай фэйл-релиза: при удалении релиза в main, фетчится самый последний релиз и деплоится на продакшн-сервер
Это позволит избавиться от dev ветки насовсем и не плясать с бубном ради их синхронизации. Заодно, можно будет на уровне репозитория запретить ненавистные мердж-коммиты
Сейчас у нас деплоится в продакшн всё, что находится в мэйне, а для активной разработки используется отдельная ветка -
dev
. Она тоже деплоится, но на свой поддомен.Проблемы возникают при выпуске новых релизов.
dev
иmain
должны существовать параллельно на протяжении долгого времени и иногда вливаться одна в другую. Для поддержания синхронизации между ними нужно проводить танцы с бубном: сначала замерджитьdev
вmain
, потом замерджить мердж-коммит изmain
вdev
.Это не очень весело, поэтому хочется сделать более удобную деплой систему. Благо гитхаб позволяет в воркфлоу интегрировать эвент
release
- то есть создание нового релиза.Хочется, что бы новая система брэнчинга и деплоя выглядела так:
main
main
отделяются небольшие ветки, которые потом сквошом или ребейзом вливаются вmain
main
самая последняя версия деплоится на поддомен с девелопмент-версией (там сейчасdev
)pre-release
и драфты игнорируются) вmain
, этот релиз деплоится на продакшн-серверmain
, фетчится самый последний релиз и деплоится на продакшн-серверЭто позволит избавиться от
dev
ветки насовсем и не плясать с бубном ради их синхронизации. Заодно, можно будет на уровне репозитория запретить ненавистные мердж-коммиты