Как организовать распределенную разработку и тестирование веб-проекта на сервере?

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

Что дано: общий веб-сервер, на котором выполняется тестирование, git на другом удаленном git-хостинге со всей кодовой базой. Поскольку сервер один, а разработчиков много, единственное, что приходит в голову - клонировать git репозиторий на сервере и при изменениях в репозитории git-хостинга делать pull на сервере. Таким образом, на сервере получаем всегда последнюю версию и не имеем проблем с конфликтами между правками разных разработчиков. Минус в том, что чтобы что-то протестировать, нужно заливать изменения в удаленный репозиторий, а потом делать pull на сервере разработки.

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

Я больше чем уверен, что задача достаточно тривиальная, но ранее не сталкивался с ней.

А вы как решаете такую задачу?
  • Вопрос задан
  • 2871 просмотр
Пригласить эксперта
Ответы на вопрос 3
Piranis
@Piranis
У каждого на локальной машине вебсервер, разработчик пишет модуль локально тестирует потом с помощью capistrano депллоит на сервер. У меня так на локальной машине демо данные а потом при деплое capistrano sinlinkи к реальной базе
Ответ написан
pesh1983
@pesh1983 Автор вопроса
Team Lead
Вариант хороший, но проект состоит из бэкэнда и фронтэнда. Бэкэнд доступен не всем разрабам. В этом то и проблема, что запустить сервер локально не получится, потому как этой части у таких разрабов просто нет.
Ответ написан
Комментировать
Piranis
@Piranis
Например решить с помощью различных веток для разработчиков без доступа ко всему коду, на каждую ветку смотрит отдельный subdomain. У него есть доступ только к своим папкам  
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы