⚓️ Otomasi sederhana menggukanan git hooks pada deployment
Panduan sederhana deploy menggunakan hooks dari git, sebagai alternatif ftp.
- Dasar penggunaan git
- Dasar penggunaan terminal
Pada kasus ini menambahkan perintah "bare" pada repositori git yang diletakkan pada server dan untuk mempublikasikan branch master(sekarang main) secara langsung mempublikasikannya ke dalam server.
-
Membuat folder untuk production di server seperti pada umumnya di dalam web server. Seperti halnya /var/www
-
Menambahkan bare repositori pada server production
-
Membuat script post-receive untuk melakukan hook dari bare repository di server (Jangan lupa scriptnya executable 😘)
-
Menambahkan remote repository ke production server yang ada di repositori lokal.
-
Kemudian tinggal push dan santuy.
$ ssh [email protected]
$ mkdir ~/deploy-folder-kamu
Seperti menginisiasikan proyek git pada umumnya. Dan beri nama sesuai selera:
$ git init --bare ~/project.git
chmod +x post-receive
Isi file post-receive
#!/bin/bash
TARGET="/home/webuser/deploy-folder"
GIT_DIR="/home/webuser/www.git"
BRANCH="master"
while read oldrev newrev ref
do
# only checking out the master (or whatever branch you would like to deploy)
if [ "$ref" = "refs/heads/$BRANCH" ];
then
echo "Ref $ref received. Deploying ${BRANCH} branch to production..."
git --work-tree=$TARGET --git-dir=$GIT_DIR checkout -f $BRANCH
else
echo "Ref $ref received. Doing nothing: only the ${BRANCH} branch may be deployed on this server."
fi
done
$ cd ~/path/to/working-copy/
$ git remote add production [email protected]:project.git
git push production master