Ini pertanyaan yang bagus sangat. 💯 Banyak yang ngira actions/setup-node itu semacam "jimat" yang wajib ada di setiap file .yml GitHub Actions. Padahal, tidak juga.
Singkatnya: Kamu wajib pake actions/setup-node kalau job kamu butuh Node.js atau NPM buat jalan. Kalau tidak butuh, ya skip aja.
Apa Itu "Runner"?
Bayangin tiap workflow jalan, GitHub kasih kamu komputer virtual fresh. Namanya Runner. Udah pre-installed banyak tools, termasuk beberapa versi Node.js.
Kalo Udah Ada, Kenapa Tetep Perlu 'setup-node'?
Ini intinya. Ada 3 alasan krusial:
- Versi Tepat – Proyekmu butuh Node 20, tapi runner defaultnya 16. Bisa error!
- Konsistensi – Biar hasilnya predictable di semua runner.
- PATH Setup – Action ini otomatis tambahin node & npm ke PATH.
Bedah Kodenya
Contoh workflow yang sering dipake:

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm' # Bonus caching node_modules!Penjelasan tiap barisnya sama kayak sebelumnya, tapi sekarang tampilannya lebih clean.
Kapan Tidak Perlu?
Kalau proyekmu bukan Node.js, misalnya Python → setup-python, Go → setup-go, atau pure Docker.
Semoga penjelasan ini makin jelas dengan desain baru yang lebih enak dibaca! 🚀