Tuesday, August 28, 2018

Cara Mudah Deploy Sistem Informasi ke Server dengan Git Hook!

Masih banyak yang bingung dengan cara upload software yang dikembangkan dalam repositori Git ke server, apakah menggunakan metode upload file via FTP seperti biasa, atau via cron untuk pull repo tiap waktu yang ditentukan. Pada tutorial kali ini, kita akan menggunakan metode paling mudah yaitu Git Hook.

Apa itu Git Hook?



Git Hook secara sederhana adalah fasilitas bawaan dari Git yang bisa diisi dengan script yang akan dijalankan sebelum atau setelah suatu proses di Git berjalan. Misal, sebelum commit file, lakukan script A, atau setelah di push, lakukan script B.

Syaratnya, server biasanya sudah terinstall Git dan kita punya akses SSH.



Langkah 1, Bikin Repo Git temporer di Server



Kenapa saya bilang temporer? karena sebenarnya hanya dibutuhkan sesekali saja,  itupun hanya kerangkanya saja, untuk deploy software saja. Cara pembuatannya, silakan login ke server dan buat repo git dengan:

[sourcecode]git init --bare namarepo.git[/sourcecode]

sesuaikan namarepo.git dengan nama software atau lainnya.

Langkah 2, Add Remote Repository di Git Lokal/Laptop



pada repo git lokal di Laptop, tambahkan repositori remote selain remote Origin. misalnya, sebut saja production

Langkah 3, Bikin Hook di Repo Git temporer di Server



Kembali ke server lagi, dan masuk ke direktori git temporer yang tadi dibuat. Masuk ke folder hooks, dan buat satu file baru bernama post-receive. Yang isinya seperti ini:

[sourcecode]
#!/bin/bash
TRAGET="/home/emka/subdomain/whucing"
GIT_DIR="/home/emka/tmp-git/wuching.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=$TRAGET --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
[/sourcecode]

dimana folder-folder seperti target dan git dir harus disesuaikan. Pada script post-receive itu, kita akan baca revisi pada git, jika menemukan versi terbaru, segera deploy ke folder target.

Langkah 4, Add Git Remote Production di Laptop



Langkah keempat, kembali ke laptop. Tambahkan repo remote yang ada di server ke repo git lokal laptop kita dengan perintah:

[sourcecode]git remote add production emka@namaserver.com:tmp-git/wuching.git[/sourcecode]

dimana production adalah nama repo remotenya (bisa diganti yang lain) dan emka@namaserver.com adalah user dan server yang kita pakai, dan tmp-git/wuching.git adalah nama folder tempat REPO GIT SEMENTARA yang kita buat.

Langkah 5, Mulai Commit dan Push ke Production



Silakan buat satu perubahan di script, kemudian commit pada git. Lalu push ke server production (atau nama lain yang kamu pakai)

[sourcecode]git push production master[/sourcecode]

jika sukses, kita akan ditanya password ssh dari user yang kita catatkan pada repo remote. Tunggu proses push repo selesai.

Perhatikan pada folder target di server, seharusnya perubahan yang kita coba tadi sudah terpasang.

+++ Tambahan +++

Untuk mempermudah proses push, silakan tautkan authorized keys SSH biar kita bisa push lebih cepat tanpa masukkan password user.

Caranya baca isi dari file .ssh/id_rsa.pub komputer/laptop development dan paste ke server di file .ssh/authorized_keys

Selamat mencoba!

0 comments:

Post a Comment