wtorek, 14 stycznia 2020

Hook do automatycznego deploy'u po pushu do repozytorium zdalnego

Założenia:

  • masz lokalne repo z poprawnie skonfigurowanym remote origin (pisałem o tym m.in. w artykule o zainicjowaniu danymi zdalnego repo)
  • masz zdalny serwer na którym znajduje się origin (tzw. "bare" np. w katalogu /srv/git/my_app.git)
  • na tym samym hoście, na którym znajduje się "bare" repo, zdeployowana jest aplikacja, gdzie kod znajduje się w katalogu /var/www/my_app/code
  • chcesz aby po lokalnym git push origin master i zaktualizowaniu się repozytorium zdalnym, wysłane zmiany w kodzie zostały automatycznie zaciągnięte do aplikacji

Krok 1

W katalogu /srv/git/my_app.git/hooks tworzymy plik o nazwie post-receive

Krok 2

W utworzonym właśnie pliku post-receive umieszczamy taką zawartość:
#!/bin/sh

unset $(git rev-parse --local-env-vars)
cd /var/www/my_app/code
git pull
touch tmp/restart.txt

Krok 3

Plik post-receive czynimy wykonywalnym, np.tak:
chmod 755 post-receive

No i właściwie od tej chwili po twoim git push origin master możesz cieszyć się autodeployem. Całość pomysłu zaciągnąłem z https://stackoverflow.com/questions/5769568/how-to-set-up-a-git-hook-so-that-after-pushing-to-ssh-peterfoo-com-bar-com

Brak komentarzy:

Prześlij komentarz