- update prisma schema to use KategoriProdukUmkm for Umkm model - add @@map to KategoriProdukUmkm for lowercase table naming - update API endpoints and KPI dashboard to use new model - bump version to 0.1.33
4.0 KiB
deploy-stg
Deploy ke staging environment secara penuh menggunakan MCP server deploy-stg.
Repo GitHub: bipprojectbali/desa-darmasaba
Branch stg: stg
STG URL: https://desa-darmasaba-stg.wibudev.com
Alur Eksekusi
Langkah 0 — Cek /api/version endpoint
Pastikan endpoint /api/version sudah ada di API:
grep -n '"/version"' src/app/api/\[\[...slugs\]\]/route.ts
Jika belum ada, tambahkan ke main API group yang membaca version dari package.json.
Langkah 1 — Version Bump
Gunakan MCP tool bump_version (server: deploy-stg).
Tool otomatis baca package.json, increment patch (+1), tulis kembali.
Catat new_version dari response — akan dipakai di Langkah 5 dan 6.
Langkah 2 — Cek & Buat Migration
Gunakan MCP tool check_migrations (server: deploy-stg).
- Jika
needs_migration: true→ jalankancreate_migrationdenganname: bump-stg-<new_version> - Jika
is_up_to_date: true→ lanjut ke Langkah 3
Langkah 3 — Build Check
bun run build
Jika build gagal → stop, perbaiki error sebelum melanjutkan.
Langkah 4 — Commit & Push ke stg
Gunakan MCP tool commit_and_push_stg (server: deploy-stg).
Tool otomatis stage package.json + prisma/migrations/, commit dengan message yang menyertakan versi baru, lalu push ke branch stg menggunakan GH_TOKEN.
Langkah 5 — Trigger publish.yml
Gunakan MCP tool trigger_publish (server: deploy-stg):
stack_env:stg(default)tag: nilainew_versiondari Langkah 1 (sama persis dengan versi dipackage.json)
Tool mengembalikan run_id. Poll dengan watch_workflow_run setiap 30 detik hingga status == "completed":
conclusion == "success"→ lanjut ke Langkah 6conclusion != "success"→ stop, tampilkan error, jangan lanjut ke re-pull
Langkah 6 — Trigger re-pull.yml
Setelah publish berhasil, gunakan MCP tool trigger_repull (server: deploy-stg):
stack_name: otomatis dari envSTACK_NAME(tidak perlu diisi manual)stack_env:stg
Stack yang di-deploy: <STACK_NAME>-stg. Poll dengan watch_workflow_run setiap 30 detik hingga status == "completed".
Langkah 7 — Verifikasi Versi
Gunakan MCP tool check_stg_version (server: deploy-stg):
wait_seconds:30(tunggu container siap)
Tool otomatis fetch BASE_URL/api/version dan bandingkan dengan versi lokal.
match: true→ Deploy berhasil!match: false→ cek container logs di Portainer atau jalankangh run view <run_id> --repo bipprojectbali/desa-darmasaba --log
Ringkasan MCP Tools
| Tool | Server | Tujuan |
|---|---|---|
bump_version |
deploy-stg |
Increment patch version di package.json |
check_migrations |
deploy-stg |
Cek status Prisma migrations |
create_migration |
deploy-stg |
Buat migration baru jika diperlukan |
commit_and_push_stg |
deploy-stg |
Commit + push ke branch stg |
trigger_publish |
deploy-stg |
Trigger publish.yml (build Docker image) |
watch_workflow_run |
deploy-stg |
Poll status workflow run |
trigger_repull |
deploy-stg |
Trigger re-pull.yml (redeploy di Portainer) |
check_stg_version |
deploy-stg |
Bandingkan versi lokal vs STG |
Ringkasan Workflow Inputs
| Workflow | Input | Value |
|---|---|---|
publish.yml |
stack_env |
stg |
publish.yml |
tag |
versi dari package.json (e.g. 0.1.26) |
publish.yml |
stack_name |
dari env STACK_NAME (opsional) |
re-pull.yml |
stack_name |
dari env STACK_NAME (otomatis) |
re-pull.yml |
stack_env |
stg |
Catatan
- Jangan jalankan
re-pull.ymljikapublish.ymlbelum selesai/berhasil. - Isi
GH_TOKENdi.envsebelum menjalankan deploy (bisa sama denganGH_TOKEN). BASE_URLdi.envsudah diset kehttps://desa-darmasaba-stg.wibudev.com.STACK_NAMEdi.envdiset ke nama stack (e.g.desa-darmasaba) — dipakai otomatis olehtrigger_publishdantrigger_repull.- Verifikasi versi via
/api/version(bukan/api/utils/version).