Urutan Workflow GitHub Actions yang Benar: Checkout → Setup → Cache

Fakhrul Rijal · 17 Januari 2026 · GitHub Actions & CI/CD

Salah satu hal yang paling sering disepelekan saat membuat workflow GitHub Actions adalah urutan langkah. Banyak developer fokus pada tool, framework, atau script build, tapi lupa bahwa workflow itu pada dasarnya adalah alur logis.

Tiga step yang hampir selalu muncul—checkout, setup, dan cache—sebenarnya punya hubungan sebab-akibat yang jelas. Kalau urutannya salah, efeknya bisa berupa workflow lambat, cache selalu tidak cocok, atau bahkan error yang sulit dilacak.

Ilustrasi workflow GitHub Actions
Ilustrasi workflow GitHub Actions

Apa Itu Workflow di GitHub Actions?

Workflow adalah serangkaian instruksi otomatis yang dijalankan oleh GitHub setiap kali terjadi suatu event, misalnya push, pull request, atau jadwal tertentu.

Workflow ditulis dalam file YAML dan dieksekusi di runner GitHub yang pada awalnya selalu dalam kondisi kosong. Tidak ada kode, tidak ada dependency, dan tidak ada cache—semua harus disiapkan dari nol di setiap run.

Kenapa Urutan Step Itu Penting?

Cara termudah memahami ini adalah dengan analogi dapur. Kamu tidak bisa memasak tanpa bahan, dan kamu tidak bisa menyimpan sisa makanan sebelum masakannya benar-benar ada.

  • Checkout = ambil bahan masakan
  • Setup = siapkan kompor dan alat
  • Cache = simpan bahan agar masak berikutnya lebih cepat

Kalau urutannya dibalik, workflow memang bisa jalan, tapi hasilnya tidak optimal dan sering membuang waktu.

Urutan Workflow yang Direkomendasikan

1. Checkout (Wajib Paling Awal)

Step actions/checkout bertugas mengambil source code repository ke runner. Tanpa step ini, runner tidak tahu apa yang harus dibangun atau diuji.

- uses: actions/checkout@v4

2. Setup Environment

Setup digunakan untuk menentukan runtime dan toolchain, seperti Node.js, Java, Python, atau Go. Banyak setup membaca file dari repository (package.json, .tool-versions, dll), sehingga harus dilakukan setelah checkout.

- uses: actions/setup-node@v4
 with:
 node-version: 20

3. Cache Dependency

Cache digunakan untuk mempercepat workflow dengan menyimpan dependency dari run sebelumnya. Cache key biasanya bergantung pada:

- uses: actions/cache@v4
 with:
 path: ~/.npm
 key: ${{ runner.os }}-node-${{ hashFiles('/package-lock.json') }}
 restore-keys: |
 ${{ runner.os }}-node-

Contoh Workflow Lengkap

name: CI
on: [push]
jobs:
 build:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v4
 - uses: actions/setup-node@v4
 with:
 node-version: 20
 - uses: actions/cache@v4
 with:
 path: ~/.npm
 key: ${{ runner.os }}-node-${{ hashFiles('/package-lock.json') }}
 - run: npm ci
 - run: npm test

Kesalahan Umum yang Sering Terjadi

  • Cache dijalankan sebelum checkout → cache selalu miss, alias tidak cocok.
  • Setup tanpa checkout → konfigurasi repo tidak terbaca.
  • Menganggap cache adalah pengganti install dependency.

Penutup

Workflow GitHub Actions yang cepat dan stabil tidak selalu butuh konfigurasi rumit. Sering kali, perbedaannya hanya terletak pada urutan langkah yang benar.

Ingat satu kalimat ini: checkout dulu, setup environment, baru cache. Sisanya tinggal menyesuaikan kebutuhan proyekmu.