Belajar GitHub Actions Gak Pake Ribet: Dari Teori Sampai Dapur Otomatis
Pernah gak sih kamu bayangin punya "asisten robot" pribadi yang siap sedia 24 jam buat ngecek, ngetes, dan merilis kode aplikasi kamu setiap kali ada perubahan? Di dunia software development zaman sekarang, robot kayak gini bukan lagi fantasi. Teknologi ini biasa disebut CI/CD (Continuous Integration / Continuous Delivery), dan salah satu platform paling populer buat bikin robot ini adalah GitHub Actions.
Di artikel ini, kita bakal kupas tuntas apa itu GitHub Actions dengan bahasa yang gampang dimengerti. Kita juga bakal langsung praktek lewat simulasi seru "Dapur Otomatis" tanpa perlu pusing mikirin kode aplikasi yang rumit, plus mengintip 10 actions komunitas yang paling sering dipakai sama para profesional di industri.
Yuk, langsung kita bahas!
Bagian 1: Apa Sih GitHub Actions & Komponen Utamanya?
Gampangnya, GitHub Actions adalah platform otomatisasi yang udah langsung nempel di dalam repositori GitHub kamu. Tugas utamanya? Menjalankan berbagai perintah otomatis berdasarkan pemicu (trigger) yang udah kamu tentukan sendiri.
Biar kebayang cara kerjanya, coba bayangin GitHub Actions ini kayak pabrik robot yang punya beberapa komponen penting berikut:
Workflows (Alur Kerja)
Ini adalah lembar instruksi utama buat robot kamu. Format filenya pakai YAML dan disimpan di dalam folder khusus bernama
.github/workflows/. Satu repositori bisa punya banyak workflow (misal: satu buat ngetes kode, satu lagi buat nge-deploy ke server).Events (Pemicu)
Kejadian atau aksi yang bikin robot mulai gerak kerja. Contohnya: pas kamu melakukan
pushkode baru, bikinpull_request(minta gabungin kode), atau bahkan pas kamu klik tombol jalankan secara manual (workflow_dispatch).Jobs (Daftar Pekerjaan)
Kumpulan tugas besar di dalam workflow. Secara default, kalau kamu punya beberapa job, mereka bakal jalan barengan secara paralel biar hemat waktu. Tapi, kamu juga bisa atur biar jalannya antri (sekuensial), alias satu job harus nunggu job sebelumnya kelar dulu.
Steps (Langkah Kerja)
Langkah-langkah kecil di dalam sebuah job yang harus dijalankan berurutan satu per satu. Isinya bisa berupa perintah terminal biasa (kayak instalasi library) atau menjalankan tugas siap pakai yang namanya Actions.
Actions (Aplikasi Mini) Semacam jalan pintas atau modul siap pakai yang dibuat sama komunitas atau organisasi resmi buat nyelesain tugas tertentu. Daripada kamu nulis skrip manual sepanjang 50 baris buat masuk ke server cloud, mending pakai Action yang udah jadi. Cukup 3 baris konfigurasi, beres!
Runners (Server Pelaksana)
Ini adalah komputer server di awan (virtual machine) yang disediain sama GitHub buat ngejalanin semua perintah di workflow kamu. Server ini bisa pakai Linux (Ubuntu), Windows, atau macOS.
Bagian 2: Praktek Tanpa Ribet — Simulasi "Dapur Otomatis"
Cara paling asyik buat paham teori di atas adalah langsung cobain sendiri. Tapi, biasanya pemula suka males duluan karena harus nyiapin kode aplikasi yang ribet.
Tenang, kita gak bakal pakai kode aplikasi kok. Kita bakal simulasiin Alur Kerja Dapur Restoran pakai perintah teks biasa (logging) buat ngeliat gimana konsep Jobs paralel dan sekuensial bekerja.
Skenario Alur Kerja
Job 1 (Persiapan Bahan) dan Job 2 (Persiapan Alat) bakal jalan barengan (Paralel). Logis kan? Koki bisa motong bawang sambil asistennya nyuci wajan di sebelah.
Job 3 (Proses Memasak) baru bisa jalan setelah bahan beres didekatkan dan peralatan udah bersih (Sekuensial / butuh keyword
needs).
[Event: Jalankan Manual]
│
├──► [Job 1: Persiapan Bahan] (Potong Bawang) ──┐
│ ├──► [Job 3: Proses Memasak] (Nyalakan Kompor & Masak)
└──► [Job 2: Persiapan Alat] (Cuci Wajan) ──────┘
File Konfigurasi Workflow (belajar-jobs.yml)
Buat file baru di repositori GitHub kamu pada jalur .github/workflows/belajar-jobs.yml dan isi dengan kode YAML di bawah ini:
name: Belajar Konsep Banyak Jobs
# Pemicu: Jalankan manual langsung dari tab "Actions" di GitHub
on: workflow_dispatch
jobs:
# JOB 1: Menyiapkan bahan makanan
persiapan-bahan:
runs-on: ubuntu-latest
steps:
- name: Langkah 1
run: echo "Sedang memotong bawang dan menyiapkan sayuran..."
- name: Langkah 2
run: echo "Bahan-bahan makanan siap!"
# JOB 2: Menyiapkan peralatan dapur (Berjalan PARALEL dengan Job 1)
persiapan-alat:
runs-on: ubuntu-latest
steps:
- name: Langkah 1
run: echo "Sedang mencuci wajan dan pisau..."
- name: Langkah 2
run: echo "Peralatan masak siap!"
# JOB 3: Memasak (Baru berjalan setelah Job 1 DAN Job 2 SELESAI)
proses-memasak:
runs-on: ubuntu-latest
# KUNCI UTAMA: Pake 'needs' buat ngatur urutan kerjaan
needs: [persiapan-bahan, persiapan-alat]
steps:
- name: Langkah 1
run: echo "Menyalakan kompor..."
- name: Langkah 2
run: echo "Memasak makanan pakai bahan dan alat yang udah siap!"
- name: Langkah 3
run: echo "Makanan siap disajikan! Proses selesai."
Cara Membuat dan Menjalankannya di GitHub
Ikuti langkah ini buat ngaktifin robot dapur kamu:
Buat Folder & File: Di komputer kamu (atau langsung lewat web GitHub), buat struktur folder
.github/workflows/di folder paling luar proyekmu. Bikin file baru namanyabelajar-jobs.ymlterus paste kode di atas.Kirim ke GitHub (Push): Simpan filenya, lakukan commit, terus push ke repositori GitHub kamu.
Buka Tab Actions: Buka repositori kamu di website GitHub, terus klik tab Actions di menu atas.
Pilih Workflow: Di kolom sebelah kiri, klik alur kerja yang barusan kita buat: "Belajar Konsep Banyak Jobs".
Jalankan: Di sebelah kanan, cari tombol abu-abu tulisan Run workflow. Klik tombol itu, lalu klik tombol hijau Run workflow buat mulai simulasi.
Lihat Visualisasinya: Tunggu beberapa detik, terus klik nama jalannya alur kerja paling baru. Kamu bakal disuguhi grafik visual yang nunjukin
persiapan-bahandanpersiapan-alatjalan barengan, terus menyatu keproses-memasak. Keren, kan? Kamu juga bisa klik masing-masing job buat ngeliat teks log keluaran dari server!
Bagian 3: 10 Actions Komunitas yang Populer Banget di Dunia CI/CD
Setelah paham dasarnya, sekarang saatnya kenalan sama "jalan pintas". Di dunia kerja nyata, kamu gak usah bikin skrip susah-susah dari nol buat tugas-tugas umum. Di GitHub Marketplace, ada ribuan Actions siap pakai yang gratis.
Ini dia 10 actions paling populer yang wajib kamu tahu:
actions/checkoutKegunaan: Nge-download (melakukan checkout) kode repositori kamu ke dalam server virtual runner GitHub.
Kenapa Populer: Ini adalah langkah pertama yang hampir selalu ada di setiap workflow dunia nyata. Tanpa ini, server GitHub gak bakal bisa baca berkas kode kamu.
actions/setup-nodeKegunaan: Nyiapin lingkungan Node.js di server runner dengan cepat. Kamu bisa atur mau versi berapa (misal versi 18, 20, dll).
Kenapa Populer: Wajib banget nih buat anak-anak JavaScript/TypeScript (React, Vue, Next.js, Express) biar bisa instal dependensi dengan lancar.
actions/cacheKegunaan: Nyimpen data sementara (kayak folder node_modules) biar gak usah download ulang dari internet di sesi workflow berikutnya.
Kenapa Populer: Bikin waktu eksekusi CI/CD jauh lebih cepet, jadi kamu gak perlu nunggu lama tiap kali ngetes kode.
docker/build-push-actionKegunaan: Bikin Docker Image dari aplikasi kamu dan otomatis nge-push ke Docker Hub atau GitHub Container Registry.
Kenapa Populer: Jadi standar utama buat tim yang pakai arsitektur modern (microservices dan container).
peaceiris/actions-gh-pagesKegunaan: Ngebantu publish web statis kamu langsung ke layanan hosting gratisan GitHub Pages.
Kenapa Populer: Favoritnya para penulis dokumentasi atau pembuat web statis berbasis Jekyll, Hugo, Gatsby, atau Astro.
w9jds/firebase-actionKegunaan: Otomatis deploy kode aplikasi ke Firebase Hosting, Firestore, atau Cloud Functions.
Kenapa Populer: Nyambungin ekosistem GitHub ke Google Firebase tanpa perlu repot instal Firebase CLI manual di server runner.
actions/upload-artifact&actions/download-artifactKegunaan: Nyimpen file hasil build (misal dapet file
.apkbuat Android atau file.zipbuat rilis) dari satu job biar bisa di-download sama kamu atau dipake sama job lain.Kenapa Populer: Sangat berguna buat oper-operan data antar server runner selama workflow berjalan.
aws-actions/configure-aws-credentialsKegunaan: Ngetes koneksi aman ke AWS (Amazon Web Services) pakai metode modern OIDC tanpa perlu nyimpen password jangka panjang yang rawan bocor.
Kenapa Populer: Gerbang utama buat kamu yang nge-deploy aplikasinya ke AWS (S3, ECS, Lambda, dll).
peter-evans/create-pull-requestKegunaan: Otomatis bikin Pull Request (PR) baru di GitHub berdasarkan perubahan file yang terjadi selama workflow jalan.
Kenapa Populer: Sering dipake robot buat update library otomatis atau sinkronisasi dokumentasi berkala.
stefanzweifel/git-auto-commit-actionKegunaan: Ngetik commit dan nge-push otomatis perubahan file yang dibuat oleh si robot balik ke repositori kamu.
Kenapa Populer: Berguna banget kalau kamu punya robot otomatis buat ngerapiin format kode (linting), nambah statistik di file README, atau update versi aplikasi.
FAQ: Pertanyaan Seputar GitHub Actions yang Paling Sering Ditanyain
Masih punya ganjalan di kepala seputar GitHub Actions? Tenang, berikut adalah beberapa pertanyaan yang paling sering diajukan oleh pemula beserta jawabannya!
1. Apakah GitHub Actions itu gratis?
Ya, gratis! Untuk repositori publik, kamu bisa memakai GitHub Actions sepuasnya secara gratis 100%. Sedangkan untuk repositori privat, GitHub memberikan kuota gratis sebesar 2.000 menit eksekusi setiap bulannya (lebih dari cukup untuk belajar dan proyek personal).
2. Apa bedanya Workflow, Job, dan Step?
Biar gampang, ingat analogi restoran kita tadi:
Workflow: Adalah seluruh rencana operasional restoran hari itu (filenya berformat
.yml).Job: Adalah divisi kerja besarnya (misal: divisi persiapan bahan dapur). Satu workflow bisa punya banyak job.
Step: Adalah instruksi detail di dalam divisi tersebut (misal: kupas bawang, lalu potong bawang). Step harus dijalankan berurutan.
3. Kenapa workflow saya gagal terus dan berwarna merah?
Jangan panik! Itu hal yang sangat wajar dalam belajar. Kamu tinggal masuk ke tab Actions, klik jalannya alur kerja yang gagal, lalu klik nama Job yang error. Di sana kamu bisa membaca pesan error (error log) langsung dari terminal server GitHub untuk mencari tahu baris kode mana yang salah.
4. Apakah aman menaruh password atau API Key di file YAML?
Sangat TIDAK aman kalau kamu menulisnya langsung (hardcode) di file YAML. Solusinya, gunakan fitur GitHub Secrets. Kamu bisa mendaftarkan password/token rahasiamu di menu Settings > Secrets and variables > Actions di GitHub, lalu panggil di file YAML memakai format khusus ${{ secrets.NAMA_RAHASIAMU }}. Robot GitHub akan menyembunyikan tulisan tersebut agar tidak terlihat oleh publik.
5. Bisakah kita menjalankan GitHub Actions secara lokal di komputer kita?
Secara resmi, GitHub Actions didesain berjalan di server cloud milik GitHub. Namun, ada alat buatan komunitas yang sangat populer bernama act. Dengan menginstal act di komputer lokalmu, kamu bisa mensimulasikan dan menjalankan workflow GitHub Actions langsung dari terminal komputermu tanpa perlu melakukan git push berkali-kali.
Kesimpulan
GitHub Actions itu fleksibel banget buat bantu otomatisasi apa pun yang kamu mau dalam siklus bikin software. Begitu kamu paham dasarnya—Events, Jobs, Steps, dan Actions—kamu udah punya modal kuat banget buat bikin alur kerja pengujian dan rilis yang rapi.
Langkah berikutnya? Coba deh ambil salah satu proyek iseng kamu, bikin tes otomatis sederhana di dalamnya, terus biarin "asisten robot" kamu yang kerja setiap kali kamu nge-push kode baru. Selamat mencoba ya!

Tidak ada komentar:
Posting Komentar