Помощник безопасного развертывания с git на боевом сервере.
Обеспечить процесс безопасного развертывания для начинающих разработчиков компании. Устранить ситуации, в которых боевой сервер оказывается в нерабочем состоянии из-за конфликтов при развертывании очередного релиза.
В этом случае разработчику задается вопрос, действительно ли он хочет продолжать:
Local branch and remote branch has different names. Continue?
Если имя ветки передано осозанно, то разработчику следует ответить Y
Если же разработчик ошибся с именем – ему следует ответить N
, процесс деплоя будет прекращен.
В этом случае разработчику будет возвращено сообщение об ошибке развертывания:
Work dir is not clean. Please commit changes
Разработчик должен зафиксировать изменения на боевом сервере, вытолкнуть их в удаленный репозиторий и повторить попытку развертывания
В этом случае разработчику будет возвращено сообщение об ошибке развертывания:
The local branch and remote branch are both modified. There is risk of conflicts while deploying.
Please push production changes to remote branch with force parameter, then pull changes locally, then resolve conflicts and try to deploy again.
Данная ситуация может привести к возникновлению конфликтов. Порядок решения:
- Убедиться, что разработчик имеет на локальном компьютере последнюю версию изменений, которые хочет развернуть на боевом сервере.
- Вытолкнуть изменения из боевого сервера в удаленный репозиторий с флагом -f (force) затирая изменения разработчика в репозитории
- Принять изменения с боевого сервера локально и решить конфликты, если они возникли
- Вытокнуть изменения из локального компьютера в удаленный репозиторий
- Повторить попытку развертывания
В этом случае разработчику будет возвращено сообщение об ошибке развертывания:
Your local branch is ahead of remote branch. Please push your changes to remote
Разработчик должен вытолкнуть изменения с боевого сервера в удаленный репозиторий и повторить попытку развертывания
В этом случае разработчику будет возвращено сообщение об ошибке развертывания:
There are nothing to pull
Разработчик должен вытолкнуть изменения с локального компьютера в удаленный репозиторий и повторить попытку развертывания
Помощник является исполняемым phar-архивом. Для установки введите команду:
php -d allow_url_fopen=1 -r "copy('http://dep.worksolutions.ru/dep.phar', 'dep.phar');"
chmod +x ./dep.phar
Phar-архив помощника скачается и сохранится в вашей текущей директории.
Помощник поддерживает версии php от 5.3 до 7.1
Команда развертывания проверит состояние локальной и удаленной веток. После успешной проверки выполнит получение изменений из удаленной в локальную ветку.
Синтаксис команды развертывания:
php -d disable_functions="" ./dep.phar deploy [<remote>] [<branch>]
Для запуска процесса развертывания введите:
php -d disable_functions="" ./dep.phar deploy
По умолчанию изменения вытянутся из удаленной ветки origin/master
,
чтобы изменить требуется указать из какой ветки удаленного источника
нужно вытянуть изменения:
php -d disable_functions="" ./dep.phar deploy origin master
Команда обновления проверит есть ли новая версия помощника и, если есть – обновит его.
php -d disable_functions="" ./dep.phar self-update
Чтобы внести вклад в инструмент – используйте пул-реквесты.