У нас есть два сайта: интернет-магазин и crm-система к нему. Оба самописные на yii2, все в одном проекте. Естественно, что они в некоторой степени интегрированы друг с другом. БД одна. Используем github для хранения исходников.
В настоящее время все сделано очень примитивно:
- dev и продакшен сайты лежат на одном сервере. shop.com, crm.shop.com, test.shop.com, testcrm.shop.com
- в гите один репозиторий и один бранч master
- тестим на тестовых доменах, если все норм, то делаем git clone на продакшн домены.
Что неудобно:
- crm и магазин деплоятся вместе.
- разработка больших частей системы тормозит деплой мелких исправлений
Хочется сделать все по-нормальному. Подскажите, плз, как лучше организовать? Делать разные репозитории? Делать разные бранчи? Или как-то обойтись тэгами?
development - текущая версия в разработке, которая тестируется
feature/developer бранчи - там все пилится, либо отдельным разрабом, либо отдельной фичей
1. Фича сделана - идет пулл-реквест в development, деплой на тестовый сервер (и зачем вам clone если можно git pull origin development)
2. Если все ок - пулл в мастер, мердж и деплой на продакшн.
Саму ветку master в обеих репах запретить для записи кем-либо, только через пулл из development. Мерджить и деплоить должен тимлид / ответственный за работоспособность кода в продакшне.