Automation deployment / delivery object sebetulnya ada beberapa cara dan tools contohnya seperti:

  1. Jenkins
  2. Jebraint Team City
  3. Github Action
  4. Travis CI
  5. Gitlab CI/CD

Nah di materi kali ini saya akan menggunakan Gitlab CI/CD karena ada beberapa alasan sih

  1. Gitlab ecosystem, udah lumayan lengkap dan yang pasti gratis.
  2. Bisa di install pada server sendiri (on premise)
  3. Script deploymentnya menjadi satu dengan project. ini kebiasaan aja sih klo saya emang biasanya lebih sering pake gitlab ketimbang yang lain.

Ok sekarang kita buat script deployment di gitlab ci/cd. dengan cara buat file dalam root project dengan nama .gitlab-ci.yml seperti berikut:

Jadi disini saya menggunakan docker-executor di gitlab-runner jadi semua service jalan di dalam container docker.

Image yang digunakan untuk melakukan build project ini yaitu maven:3.6.3-jdk-8.

Variables, ada beberapa variable yang kita perlu set di Setttings -> CI/CD -> Variables seperti berikut:

gitlab ci/cd

dan untuk property only => /-release/ ini tujuannya adalah ketika kita push pada branch / membuat tag dengan prefix tersebut akan automatis di jalankan command script nya.

OK, setelah itu kita commit dan push. dengan perintah seperti berikut:

# index file .gitlab-ci.yml
git add .gitlab-ci.yml

# commit file
git commit -m "script deployment"

# push code
git push 

# create tag 
git tag -a 2020.12.16.22.23-release -m "first deploy"

# push tag
git push --tags

Kemudian kita coba check pada menu Pipeline hasilnya seperti berikut:

git build