Имеется frontend на React и backend на Spring Boot, хранятся они в разных репозиториях. У них есть общие файлы который хранятся и там и там. Если вдруг либо на фронте, либо на бэке меняется что-то в общих файлах нужно как-то синхронизировать изменения (пока тупо отправляем по почте :) ). Подскажите какие способы есть для того, что бы как-то упростить этот процесс и хранить всё в одном месте? В голову приходят git submodules, но не уверен насколько это правильно и интересно услышать другие решения
1. а что за общие файлы?
2. сделать для общих файлов третий репозиторий и коммитить туда
3. гит сабмодули наверное не самое лучшее решение. Но надо понять что за файлы.
Никто не мешает из одного репозитория собирать разные образы.
У меня есть несоколько компонентов, которые содержат общие и свобственные подпапки, и CI настроен для каждого компонента так, что он начинает сборку если изменилось что-то в общих или папках конкретного компонента.
Генерируются каждым билдом свои артефакты, деплоятся тоже отдельно
P.S. Это оказалось проще, чем заводить отдельный репо для общих файлов/библиотек и настраивать триггер билдов на два CVSRoot
Saboteur, Вы используете ветвление? CI собирает если появились изменения в конкретной ветке или в любой?
Ведь могут быть промежуточные камиты, которые не должны попасть в релиз! Тогда работают на ветке например девелоп, а по окончанию тестирования сливают в релиз. И CI собирает с веток релиза всех репов.
Александр Булитеров,
конечно используем.
Есть один репозиторий.
Есть 4 билд джобы
Триггер каждой джобы настроен, чтобы срабатывать на изменения в общей папке или папке этого компонента
Каждая джоба внутри уже может выполнять различные действия. Например фича бренчи будут компилиться и проходить юнит тесты.
Релизные и мастер бренчи, в случае успешных юнит тестов будут создавать package или докер-image и возможно даже автоматически деплоиться на QA енвайрнмент.
По моему git submodule самое то оно.
Создаёте 3 реп. туда общие файлы. И в каждый реп добавляете субмодуль. По мере обновления синхронизируете субмодули!
Чем хорошо субмодуль? Тем что, вы можете "взять" слепок основного репа и субмодуля. При этом вести активную работу на всех трех. Ну и естественно использовать ветвление: всё что уходит в деплой берёте строго с веток релиз (например). + правильно здесь использовать теги. Особенно у субмодуля. Т.е. забирать с субмодуля не по камиту, а по тегу.
Удачи!