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 masteri 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 plikupost-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
Plikpost-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