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.
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 GCP dan pastikan kamu juga sudah enable Cloud Build API dan App Engine API.
Links:
Tambahkan role App Engine Admin ke akun Cloud Build Service di IAM Page. Biasanya, nama akun terlihat seperti ini:
<project-id>@cloudbuild.gserviceaccount.com
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 😎
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?