CI(Continuous Integration)/CD(Continuous Deployment)
CI dan CD merupakan 2 tahapan yang dimana CI untuk melakukan integrasi/sync kode dengan repository ataupun melakukan pengujian kode, apakah kode tersebut layak untuk dilakukan deployment ke production
sedangkan CD merupakan tahapan kelanjutan dari proses CI, yaitu proses deployment ke production. Dalam tahapan ini kode yang sudah dilakukan build/compile akan dilakukan proses menjalankan project, sehingga project dapat diakses oleh pengguna
Tool untuk C/CD ini diantara lain: azure, jenskins, gitlab CI/CD.
Untuk tutorial ini, akan menggunakan gitlab CI/CD sebagai toolnya
Siapakan project yang ingin dilakukan deployment, jika belum punya bisa buat terlebih dahulu dengan perintah
npx create-next-app cicd-next
setelah itu masuk ke directory foldernya
dan buat file gitlab-ci.yml, atau bisa menggunakan perintah
kemudian pastekan kode berikut
stages:
- build
- deploy
before_script:
- npm install
- npm install pm2 -g
build:
stage: build
image: node:16
script:
- echo "Start build"
- npm run build
cache:
paths:
- node_modules
artifacts:
paths:
- .next
- build
expire_in: 1 day
only:
- main
deploy:
stage: deploy
image: node:16
script:
- echo "Start deploy"
- pm2 start npm -- start
only:
- main
Untuk lakukan commit dan push ke remote
git add . && git commit -m "ci/cd: create gitlab-ci.yml" && git push
Konfigurasi Gitlab Runner di VPS
Agar konfigurasi gitlab-ci.yml yang ada direpo dapat dijalankan dan dimonitoring oleh gitlab, maka perlu install gitlab runner terlebih dahulu.
install gitlaba runner dengan command berikut
sudo apt-get install gitlab-runner
atau
sudo dnf install gitlab-runner
atau jika ingin install secara manual, bisa ikut instruksi di link berikut Gitlab Runner
Untuk check apakah gitlab runner sudah sukses terinstall, jalankan perintah
Register Gitlab Runner pada VPS
Langkah selanjutanya setelah install gitlab runner yaitu melakukan register gitlab runner. Fungsi register ini yaitu untuk melakukan sync/koneksi antara gitlab runner dan host gitlab