Как организовать распределенную разработку и тестирование веб-проекта на сервере?
Всем привет! Нужно организовать работу над веб-проектом для нескольких человек на одном удаленном сервере. Я делаю это первый раз, и у меня есть одно решение, но оно мне не очень нравится. Я уверен, что можно сделать лучше, поэтому прошу советов у опытных людей.
Что дано: общий веб-сервер, на котором выполняется тестирование, git на другом удаленном git-хостинге со всей кодовой базой. Поскольку сервер один, а разработчиков много, единственное, что приходит в голову - клонировать git репозиторий на сервере и при изменениях в репозитории git-хостинга делать pull на сервере. Таким образом, на сервере получаем всегда последнюю версию и не имеем проблем с конфликтами между правками разных разработчиков. Минус в том, что чтобы что-то протестировать, нужно заливать изменения в удаленный репозиторий, а потом делать pull на сервере разработки.
Во-первых, это муторно и совсем не быстро, потому как иногда приходится делать это после каждой правки, а во-вторых такими временными пушами засоряется основной репозиторий. Как вариант, можно использовать ветки. Это частично решает вторую проблему, не давая временным коммитам пролезть в основную ветку, но не решает первую - это все равно долго. Поднимать локально на каждой машине разработчика свой сервер - не вариант, потому как часть разработчиков работает над частью кода, который находится в отдельных репозиториях, вся кодовая база им недоступна, а без нее локально сервер не поднять.
Я больше чем уверен, что задача достаточно тривиальная, но ранее не сталкивался с ней.
У каждого на локальной машине вебсервер, разработчик пишет модуль локально тестирует потом с помощью capistrano депллоит на сервер. У меня так на локальной машине демо данные а потом при деплое capistrano sinlinkи к реальной базе
Вариант хороший, но проект состоит из бэкэнда и фронтэнда. Бэкэнд доступен не всем разрабам. В этом то и проблема, что запустить сервер локально не получится, потому как этой части у таких разрабов просто нет.
Например решить с помощью различных веток для разработчиков без доступа ко всему коду, на каждую ветку смотрит отдельный subdomain. У него есть доступ только к своим папкам