Memasang CI/CD ke Aplikasi Express.js

« Back to blog index

Deploy secara manual tentu saja akan membuat proses development aplikasi terasa tidak efisien, mari kita belajar bagaimana cara mengimplementasikan CI/CD (Continuous Integration/Continuous Deployment) pada aplikasi kita.

Pada contoh kali ini, saya akan menggunakan Google Cloud sebagai platform untuk melakukan Continuous Deployment. Pada panduan ini, diasumsikan kamu:

Bagi kamu yang belum mengerti CI/CD, sangat disarankan untuk cari tahu terlebih dahulu tentang istilah ini, karena saya tidak akan menjelaskan secara detail apa itu CI/CD tapi lebih ke bagaimana cara kita mengimplementasikannya. Pada dasarnya, yang kita lakukan adalah melakukan otomatisasi untuk proses deployment.


Siapkan aplikasi Express.js beserta tests-nya

Buatlah aplikasi sederhana (Hello World juga boleh 😉) beserta file test-nya. Tujuan kita membuat file test adalah untuk memastikan bahwa aplikasi kita berjalan sesuai keinginan sebelum di-deploy. Tambahkan juga file app.yaml yang diperlukan oleh App Engine. Jika sudah, silakan push code kamu ke GitHub.

app.yaml:

 runtime: nodejs10 

Buat project baru di Google Cloud Platform

Buat project baru di GCP dan pastikan kamu juga sudah enable Cloud Build API dan App Engine API.

Links:

Tambahkan role ke Cloud Build Service Account

Tambahkan role App Engine Admin ke akun Cloud Build Service di IAM Page. Biasanya, nama akun terlihat seperti ini:

<project-id>@cloudbuild.gserviceaccount.com

Buat Cloud Build configuration file

Tambahkan file cloudbuild.yaml pada aplikasi kamu dengan isi sebagai berikut:

steps:
- name: "gcr.io/cloud-builders/npm"
  args: ["install"]
- name: "gcr.io/cloud-builders/npm"
  args: ["test"]
- name: "gcr.io/cloud-builders/gcloud"
  args: ["app", "deploy"]
timeout: "1600s"

File ini nantinya akan dijalankan ketika kita push code kita ke GitHub. Urutannya sesuai dengan yang kita tulis, jadi sebelum deploy kita akan menjalankan npm install dan npm test terlebih dahulu. Jika testnya fail maka code tidak akan terdeploy 😎

Buat Trigger baru di Cloud Build Triggers

Sambungkan repository yang telah kamu buat ke Cloud Build Triggers. Dan proses selesai! Sekarang code kamu akan otomatis terdeploy jika code yang kamu push sudah menjalani test dan pass semua. Cukup mudah bukan?


« Back to blog index