Menyiapkan fondasi untuk otomatisasi release: skill Git, dasar CI/CD, dan familiaritas Node.js sebagai runtime semantic-release. Lalu memasang Node.js, VS Code dengan ekstensi GitHub, dan GitHub CLI agar environment siap menulis commit berformat Conventional Commits sejak hari pertama.

Selamat datang di series Belajar Semantic Release! Series ini membahas otomatisasi release modern: versi, changelog, dan tag dihitung otomatis dari riwayat commit, bukan ditebak manual oleh manusia. Namun sebelum menyentuh file release.config.cjs pertama, ada empat fondasi yang wajib kalian kuasai: Git & GitHub, struktur commit dan changelog, dasar CI/CD, serta Node.js — karena semantic-release adalah tool berbasis Node.js.
Episode 0 ini adalah lapisan fondasi. Kita akan mengulik keempat skill tersebut, lalu menyiapkan environment kerja lengkap: Git terpasang, Node.js dan npm, VS Code dengan ekstensi GitHub/GitLens, dan GitHub CLI (gh) yang sudah terautentikasi. Di akhir episode, mesin kalian siap menjalankan otomatisasi release sungguhan.
Semantic-release bekerja dengan membaca riwayat commit dan membuat tag versi di repository. Tanpa penguasaan Git, seluruh seri ini terasa seperti membaca buku resep tanpa pernah masuk dapur.
| Konsep | Penjelasan | Perintah Kunci |
|---|---|---|
| Branch | Jalur pengembangan terpisah dari jalur utama | git branch, git checkout |
| Merge | Menggabungkan riwayat dua branch | git merge |
| Rebase | Menulis ulang riwayat agar linear | git rebase |
| Push | Mengunggah commit ke remote | git push |
| Pull Request | Review dan merge antar branch di GitHub | git push + UI GitHub |
git branch feature/login
git checkout feature/login
git add .
git commit -m "feat: halaman login"
git checkout main
git merge feature/login
git push origin mainMental model terpenting: commit adalah checkpoint, dan branch adalah cara mengembangkan tanpa merusak jalur utama. Di series ini, riwayat commit bukan sekadar catatan — ia adalah sumber kebenaran yang menentukan apakah rilis baru dibuat dan seberapa besar lompatan versinya.
Sebelum otomatisasi, changelog ditulis manual: mengumpulkan daftar perubahan, merapikan kategori, lalu menyusun release notes. Masalahnya, proses itu memaksa seseorang mengingat apa saja yang berubah sejak rilis terakhir.
Tip
Latih kebiasaan menulis pesan commit yang menjelaskan alasan, bukan hanya tindakan. git log --oneline yang runtut adalah bahan baku changelog yang bagus.
$ git log --oneline -5
e7b2c9d fix: perbaiki validasi email login
a31f8b0 feat: tambahkan halaman login
5c9d1a4 chore: update dependensi keamanan
2b4f0e1 feat: halaman dashboardSemantic-release biasanya dijalankan dari pipeline CI, paling umum GitHub Actions. Kalian tidak perlu jadi master YAML, tetapi wajib paham konsep dasarnya: workflow dipicu oleh event (commit di-push, pull request dibuka), berisi job, dan setiap job berisi steps yang mengeksekusi perintah shell.
Series learn-github-actions di blog ini adalah pendamping yang sangat direkomendasikan sebelum melangkah ke episode 6.
Semantic-release adalah Node.js CLI tool. Artinya kalian butuh Node.js (versi 18 ke atas, stabil di 20 atau 22) dan salah satu package manager: npm, yarn, pnpm, atau Bun. Kalian tidak perlu mahir memprogram JavaScript, cukup paham cara menginstall dependency dan menjalankan CLI via npx.
Pastikan Git terpasang dan repository siap. Gunakan repository belajar baru — sebaiknya bukan repository produksi yang dipakai sungguhan.
git --version
mkdir belajar-semantic-release
cd belajar-semantic-release
git init
git remote add origin git@github.com:kalian/belajar-semantic-release.gitUnduh Node.js LTS dari nodejs.org atau gunakan package manager favorit kalian. Pastikan versi Node minimal 18:
$ node --version
v22.22.0
$ npm --version
10.9.4Editor yang nyaman mempercepat alur kerja. Di VS Code pasang dua ekstensi yang paling berguna untuk series ini:
Cara memasangnya: buka VS Code, tekan Ctrl+Shift+X, cari nama ekstensi, lalu klik Install. Kedua ekstensi ini tidak menulis commit untuk kalian, tetapi memberi konteks visual pada riwayat yang nantinya dibaca semantic-release.
gh membuat autentikasi dan operasi repository lebih cepat dari terminal.
gh auth login
gh auth statusPerintah gh auth login memandu kalian memilih host (GitHub.com), protokol HTTPS atau SSH, lalu login lewat browser dengan kode one-time. Output yang diharapkan:
$ gh auth status
github.com
✓ Logged in to github.com as arman-dp
✓ Git operations for github.com configured to use sshPerintah gh yang sering dipakai:
| Perintah | Fungsi |
|---|---|
gh repo clone owner/repo | Mengkloning repository |
gh pr create | Membuat pull request |
gh run list | head -5 | Melihat daftar workflow run |
gh release list | Melihat release yang dibuat semantic-release |
Blog yang sedang kalian baca ini (repository devvnull.vercel.app) adalah contoh nyata penerapan semantic-release. Konfigurasinya ada di file release.config.cjs di root repository, dengan:
main untuk release stable.staging sebagai prerelease dengan suffix rc.tagFormat berupa v diikuti versi semver.commit-analyzer sampai github.Kalian akan mengulik file ini lebih dalam di episode 5.
Warning
Jangan pernah meng-commit file .env.local atau token apa pun ke git. GitHub Actions dan semantic-release mengambil rahasia dari secrets repository, bukan dari file yang ikut ter-versioning.
Pada episode 0 ini kalian telah menyiapkan fondasi lengkap:
Environment kalian sekarang siap. Di episode 1 kita akan berhenti sejenak untuk memahami sejarah dan mengapa semantic-release lahir — mulai dari masalah manual release yang rentan error, hingga bagaimana Conventional Commits membuat riwayat commit bisa dianalisis mesin. Sampai jumpa di episode 1!