Как я могу использовать git для развертывания на тестовом сервере? - PullRequest
0 голосов
/ 27 сентября 2018

Я использовал открытую смену Redhat несколько лет назад.То, как вы обновляете сервер, - это отправка в git-репо.После внесения изменений вы можете протестировать свое приложение в браузере.

Я хочу реализовать это в одной из моих виртуальных машин для тестирования.Чтобы каждый раз, когда я давил на репо, тестеры могли сразу увидеть мои изменения.Я делаю это в облачной виртуальной машине, потому что человек, который будет проверять это, находится в другой стране.Я использую nginx, pm2, nodejs и экспресс.

Я понимаю, что могу просто подключиться к серверу по ssh, вытащить изменения, перезапустить pm2.Но если есть более автоматизированный способ, это будет лучше.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Вы, вероятно, хотите изучить git-хаки на стороне сервера.Вы можете выполнить bash-скрипт на сервере при получении git push и выполнить все необходимое для обновления сервера.

Чтобы дать краткое изложение:

Крючки можно найти под .git/hooks.Здесь вы найдете следующие файлы:

  • pre-push.sample
  • commit-msg.sample
  • pre-rebase.sample
  • post-update.sample
  • prepare-commit-msg.sample
  • pre-applypatch.sample
  • update.sample
  • pre-commit.sample

Например, на вашем сервере, если вы добавите следующее в ловушку после обновления, сервер отправит вам электронное письмо при получении подтверждения:

#!/bin/bash
git show --name-status | mail -s "Received Push" youremail@email.com

В этом файле вы, вероятно, захотите написать свой сценарий для перестройки веб-сайта с новыми данными!

0 голосов
/ 27 сентября 2018

То, что вы описываете, называется Continuos Integration / Continuous Deployment, часто называемое CI / CD.Для этого есть специальные инструменты.Двумя основными игроками являются TeamCity от jetbrains (бесплатно для проекта, который вы описываете) и Jenkins (с открытым исходным кодом).Я бы посоветовал вам поискать учебники на CI / CD, в которых используется один из этих двух продуктов.

...