CI: Один репозиторий Git подходит всем? Или: gitflow для нескольких проектов

До сих пор у меня и моей команды не было ничего похожего на автоматизированный процесс доставки в производство. Это может звучать удивительно для некоторых людей, но это просто не казалось необходимым для нашей повседневной работы. По крайней мере, мы так думали. Я очень уверен, что это что-то вроде автомобильной навигационной системы или автоматической посудомоечной машины - вещи, за которую вы бы умерли, если бы только начали ее использовать.

Однако, поскольку мы планируем запустить небольшой проект в ближайшие пару недель, я хочу позаботиться о том, чтобы мы могли не только производить, но и доставлять обновления для него максимально быстро и часто. И часто я неЯ имею в виду один раз в неделю, но несколько раз в день.

В чем я все еще не уверен, так это в организации нижележащего git-репозитория / репозиториев. В настоящее время мы используем один репозиторий с gitflow в качестве модели ветвления. Репозиторий содержит следующие части:

APICDNВеб-сайтПриложение для iPhone

В настоящее время мы используем теги, чтобы пометить новые выпуски в основной ветке, как мы можемСкажем, каждая фиксация в master приводит к появлению новой версии, поскольку она может быть связана с приложением iPhone или одним из приложений на стороне сервера. Как вы можете'Если вы просто опубликуете новую версию приложения во вселенной, она всегда будет асинхронной.

Преимущество наличия всех этих приложений в одном репозитории - это очень простая начальная настройка для всех нас и гарантия того, что приложение iPhone и API работают вместе, если разработчик использует одну и ту же ветку на обоих серверах (Windows ) и среда разработки приложений (Mac) во время разработки / тестирования.

Тем не менее, это неЯ чувствую себя хорошо. Как написано выше, мы будем использовать теги git, чтобы различать новыестроит» для приложения и сервера приложений. Кроме того, мы всегда должны публиковать все три веб-приложения, даже если кто-то только исправляет или добавляет что-то в одно из них.

Вероятно, мы могли бы представить ветки разработки и master для каждого из этих приложений. Это позволило бы нам отказаться от использования тегов (что нев любом случае) и запускайте новый процесс доставки с каждым коммитом в одну из главных ветвей.

Я боюсь, что это приведет прямо к хаосу, по крайней мере, из 8 "база" ветки и бесчисленное множество исправлений и функций ветвей.

Поэтому я предпочитаю другой вариант: разделить его на 5 репозиториев. Один для каждого из приложений, один для утилит и других вещей, не связанных непосредственно с одним из них.

Что значит иметь смысл? Как ты это делаешь? Как это работает лучше для вас? Спасибо за отзыв.

Ответы на вопрос(1)

Ваш ответ на вопрос