Deployment Workflow
Release
Release artinya membuat tag. Release sebaiknya dilakukan sesering mungkin, misalnya setelah menyelesaikan bug atau tweak. Format rilis mengikuti SemVer.
Perintah release melalui bot adalah
imp!release [patch/minor/major] [nama aplikasi]
Contoh misalnya tag terakhir v2-erkam-api-gateway
adalah v1.0.1
imp!release patch v2-erkam-api-gateway
Perintah tersebut akan menghasilkan tag baru yaitu v1.0.2
. Tag otomatis akan dibuat dari default branch. Release note akan diambil dari commit message, jadi pastikan kita melakukan commit dengan message yang jelas.
Kita juga dapat mendefinisikan tag secara langsung
imp!release v1.0.3 v2-erkam-api-gateway
Atau menentukan tag akan dibuat dari branch yang mana
imp!release patch v2-erkam-api-gateway --branch=fix-bug-dashboard
Build
Build artinya membuat docker image dari sebuah project.
imp!build [nama aplikasi] [nama tag]
Contohnya
imp!build v2-erkam-api-gateway v1.0.3
Deploy
Deploy berarti menginstall aplikasi dengan versi tertentu.
imp!deploy [nama aplikasi] [nama tag] [production/staging/practice]
Contohnya
imp!deploy v2-erkam-api-gateway v1.0.3 production
Kita juga dapat mendeploy latest
version dari sebuah aplikasi
imp!deploy v2-erkam-api-gateway latest staging
Perintah Lainnya
Restart aplikasi
imp!restart [nama aplikasi] [development/staging/production/practice]
Contohnya
imp!restart lms-be development
Melihat status deployment
imp!status [nama aplikasi] [development/staging/production/practice]
Contohnya
imp!status lms-be staging
Hasilnya
NAME READY STATUS RESTARTS AGE
lms-be-5ddddf59d8-mmqjj 1/1 Running 0 28h
image: gcr.io/pmrms-362603/lms/lms-be:latest
Menjalankan perintah di aplikasi
imp!run [nama aplikasi] [development/staging/production/practice] --command="[tulis command disini]"
Contoh: menjalankan perintah migration
pada aplikasi Laravel
imp!run lms-be staging --command="php artisan migrate"
Contoh: print string
imp!run lms-be staging --command="echo 'here'"