Inilah episode pamungkas. Kita menguji seluruh fondasi dari episode pertama hingga episode kedua puluh satu lewat checklist produksi yang menyeluruh: branch protection, secrets, versioning, changelog, dan rollback. Plus kriteria rilis, retrospektif, dan pesan penutup untuk seluruh perjalanan seri yang sudah kita lalui bersama.

Dua puluh satu episode telah kita lalui: dari mengenal Conventional Commits, membangun pipeline, mengamankan branch, hingga menskalakan ke banyak tim. Kini saatnya menguji semuanya di lingkungan terkeras — produksi. Episode ini adalah episode pamungkas: checklist hardening menyeluruh, kriteria rilis yang tegas, retrospektif yang membuat sistem makin baik, dan pesan penutup untuk seluruh seri.
Di episode ini kita membahas:
rc layak naik ke stable main.Ini adalah checklist menyeluruh yang bisa kalian jadikan penilaian akhir sebuah pipeline rilis. Centang semua sebelum menganggap sistem production-ready.
main dan staging dilindungi branch protection rules.semantic-release --dry-run.GITHUB_TOKEN hanya diberi permission minimal yang dibutuhkan.NPM_TOKEN scope terbatas dan dirotasi berkala.main stable, staging prerelease rc.tagFormat konsisten di semua repo, misalnya dengan prefix v.Contoh tagFormat yang dipakai sebagai standar organisasi:
module.exports = {
tagFormat: 'v${version}'
}Rilis ke produksi tidak boleh menjadi keputusan otomatis buta. Tetapkan kriteria yang bisa diukur untuk naik dari staging ke main:
| Kriteria | Staging (rc) | Production (main) |
|---|---|---|
| Smoke test | Wajib | Wajib plus regression |
| Code freeze | Tidak wajib | Berlaku sebelum rilis |
| Canary deployment | Opsional | Wajib untuk breaking change |
| Approval | Tim dev | Tim dev plus SRE atau owner |
| Rollback window | Jam | Menit, dengan runbook |
Prinsipnya: staging adalah tempat uji, produksi adalah tempat janji. Semua yang masuk ke main harus sudah terbukti di staging — jangan pernah memakai produksi sebagai tempat eksperimen.
Tip
Jangan terapkan semua kriteria sekaligus. Mulai dari smoke test dan approval, lalu tambahkan canary setelah tim nyaman. Kriteria yang terlalu berat justru membuat orang mencari jalan pintas — kebalikan dari yang kita inginkan.
Otomasi tidak pernah selesai. Setelah setiap rilis besar, adakan release retrospective singkat:
Ukur trennya dari waktu ke waktu:
| Metrik | Target |
|---|---|
| Lead time ke produksi | Turun tiap kuartal |
| Rilis gagal | Mendekati nol |
| Rollback | Kurang dari 1 persen rilis |
| Persentase otomatis | Seratus persen untuk tugas rutin |
Hasil retrospektif dikembalikan ke dokumentasi — CONTRIBUTING.md, checklist, dan config — supaya standar hidup dan terus membaik.
Perjalanan kita dimulai di episode 0 dengan pre-requisites, lalu merangkak naik: Conventional Commits, Git Flow, setup semantic-release, GitHub Actions, commit analyzer, dry run, keamanan branch, audit changelog, plugin custom, migrasi repository lama, monitoring, GitOps, standar tim, hingga penskalaan di banyak repo. Episode 22 ini menutup lingkaran.
Yang perlu kalian bawa pulang:
fix: yang jujur lebih berharga daripada seribu halaman dokumentasi.Terima kasih sudah berjalan sampai episode terakhir. Kalian kini punya alat yang lengkap untuk mengotomasi rilis secara aman, konsisten, dan dapat diaudit. Aplikasikan di satu repository nyata — biarkan semantic-release bekerja, lalu lihat bagaimana tim bisa fokus pada kode, bukan pada ritual rilis manual.
Dua puluh tiga episode bukanlah akhir, melainkan awal dari budaya rilis yang sehat. Selamat membangun, dan sampai jumpa di seri berikutnya!