Описание модуля
Данный модуль предназначен для разработчиков. Если вы ведёте проект на гите, в какой-то момент остро встаёт вопрос сборки проекта на тестовом (dev) и боевом (production) серверах. Также как и ведение структуры базы данных на гите и все её изменения.
Для этого был разработан данный модуль, который позволяет автоматизировать процесс сборки проекта, и выполнение миграций.
Для работы модуля нужно чтобы на сервере был установлен git, иметь доступ к серверу по ssh, разрешена ф-ция exec().
Модуль интегрирован только с Bitbucket-ом.
Общая схема инициализации проекта:
Разработчик создает репозиторий на битбакете, инициализирует пустой репозиторий на локалке, добавляет в него проект и устанавливает данный модуль.
Создаются три основные ветки: master, dev и production. Все ветки пушатся на удаленный репозиторий (на битбакете).
Настраиваются SSH ключи для битбакета и Webhooks.
На dev сервер по ssh клонируется репозиторий и переключается на ветку dev, на production клонируется ветка production.
Общая схема работы с проектом:
Разработчик в ветке master (там всегда самые новые но не всегда готовые к релизу работы) выполняет работы, когда их можно сдавать на проверку, мержит ветку master в ветку dev, и пушит dev. В этот момент отработает Webhook и запустится сборка проекта на dev сервере (с выполнением миграций и прочего). Через пару минут можно проверять свои работы на dev сервере.
После успешного прохождения тестирования и приемки заказчиком, можно мержить ветку dev в ветку production, после этого все изменения появятся на production сервере.
Прелесть такого подхода, что на проекте может работать несколько разработчиков одновременно. Также не нужно руками выливать все изменения по ftp. Нет необходимости работать по ftp непосредственно на production сервере, когда все клиенты сайта видят как он иногда "ложится" во время разработки "на живую". Если (а это очень желательно так сделать) dev сервер находится на одном сервере с production, фразы "у меня на локалке работает" сводятся к минимуму, т.к. работа сайта проверяется на реальном сервере, и после переливки на production ничего не изменится.
Полная инструкция по работе находится внутри модуля.