
Halo, kalau kamu merasa tulisan saya ngebantu kamu, kamu bisa ucapkan terima kasih lewat saweria
If you feel this website help you, you can donate at saweria
Tutorial ini saya buat sehabis baca docs gitlab - laravel with gitlab & envoy.
Saya coba terapkan di aplikasi berbasis Code Igniter atau PHP Native, hasilnya sama. Berikut caranya:
-
Di kasus kali ini, root aplikasi nya ada di
/var/www/aplikasi
. Clone aplikasi di folder tersebut -
Buat variabel di Gitlab CI/CD
a. release_date, tanggal dan jam rilis aplikasi. Isikan dengan
$(date '+%Y%m%d%H%M')
b. releases_dir, isi dengan
/var/www/aplikasi/releases
c. repository, value
git@gitlab.com:/namagrup/namaaplikasi.git
d. server_private_key, value nya dengan id_rsa (RSA private key). Biasanya letaknya ada di
~/.ssh/id_rsa
e. web_dir, value nya
/var/www/aplikasi
f. new_release_dir, direktori yang bakal menyimpan aplikasi versi terbaru, isikan dengan
$releases_dir/$release_date

Membuat Variabel di Gitlab CI/CD
- Buat file baru dengan nama .gitlab-ci.yml, isinya
image: alpine:latest
before_script:
- apk update
- apk add git zip unzip
- 'which ssh-agent || ( apk add openssh-client )'
- mkdir -p ~/.ssh
- eval $(ssh-agent -s)
- '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
stages:
- deploy_production
deploy_production:
stage: deploy_production
script:
- echo "$server_private_key" | tr -d '\r' | ssh-add - > /dev/null
- ssh userprivatekey@ipserver
"echo 'Cloning new repo' &&
[ -d $releases_dir ] || mkdir $releases_dir &&
git clone --depth 1 $repository $new_release_dir &&
echo 'Cloning new repo was done' &&
echo 'link to uploads directory' &&
rm -rf $new_release_dir/uploads &&
ln -nfs $web_dir/uploads $new_release_dir/uploads &&
echo 'Link to uploads directory was done' &&
echo 'Link to current release' &&
ln -nfs $new_release_dir $web_dir/current &&
echo 'Link to current release was done'"
- echo "deploy to production success, check at https://yourcoolwebsite;
##run manually just to make sure you dont mess up whole thing
when: manual
-
Commit & push ke repositori
-
Masuk ke menu CI/CD-Pipelines, tekan tombol “play”

Membuat Variabel di Gitlab CI/CD

Pipeline Sukses! Silahkan Cek Hasilnya di Server
Referensi : Docs gitlab - laravel with gitlab & envoy