У меня есть следующие настройки
[dev laptop] -- git push --> [gitlab]
|
git pull
|
V
[prod server]
Вышеуказанный результат в следующем рабочем процессе
dev-laptop$ git push gitlab
dev-laptop$ ssh prod-server
prod-server$ cd app
prod-server$ git pull gitlab
prod-server$ pm2 restart app
prod-server$ exit
dev-laptop$ rsync
изображений и других двоичных файлов между dev и prod
Как я могу уменьшить количество вышеуказанных шагов? Вот что я подумал:
избавиться от gitlab между ними, чтобы я git push
прямо с моего dev-ноутбука на prod-сервер . Но я не знаю, как это сделать или даже можно ли это сделать.
настроить git hooks
на gitlab , поэтому, когда я git push
к нему, на post-receive
, gitlab git push(es)
изменения прод-сервер . И добавьте post-receive
git hook на prod-server , который перезапускает pm2
. Конечно, я не совсем знаю, как это сделать.
Обновление: В идеале, так как я являюсь единственным разработчиком в этом проекте, мне бы хотелось иметь рабочий процесс, подобный этому
[dev laptop] -- git push --> [prod server]
Вышеприведенное, в сочетании с несколькими git hooks
, как описано выше, значительно упростит мою жизнь. Конечно, опасность состоит в том, что у меня больше нет центрального репо, поэтому в случае, если мой dev ноутбук или prod server обанкротится, у меня нет резервной копии. Но это опасность, с которой я могу жить.
Обновление 2: безопасность центрального репо очень привлекательна.