Konsep Dasar GitHub Actions
GitHub Actions digunakan untuk mengotomatisasi berbagai proses development langsung dari repository. Beberapa konsep utamanya meliputi:
-
Workflow — file YAML yang berada di
.github/workflows/ -
Trigger — event yang menjalankan workflow seperti push, pull request, atau schedule
-
Job — kumpulan proses yang dijalankan pada runner
-
Step — perintah atau aktivitas di dalam job
-
Action — komponen reusable untuk menjalankan tugas tertentu
Memahami struktur ini menjadi dasar sebelum membuat pipeline CI/CD.
Membuat CI Pipeline
Pipeline Continuous Integration (CI) dapat dijalankan setiap kali ada push atau pull request.
Proses umumnya meliputi:
-
Checkout repository
-
Setup Node.js
-
Install dependencies
-
Menjalankan linting
-
Menjalankan automated tests
-
Melakukan build aplikasi
Jika salah satu proses gagal, perubahan dapat ditahan sebelum masuk ke branch utama.
Membuat CD Pipeline
Setelah kode berhasil melewati proses CI, GitHub Actions dapat digunakan untuk melakukan Continuous Deployment (CD).
Contohnya, workflow berjalan ketika terdapat perubahan pada branch main, kemudian:
-
Build aplikasi atau Docker image
-
Push image ke container registry
-
Deploy ke server atau cloud
-
Menjalankan proses verifikasi setelah deployment
Untuk production, gunakan GitHub Environments dan protection rules agar deployment tidak dilakukan tanpa kontrol yang sesuai.
Reusable Workflows
Workflow yang digunakan berulang kali dapat dibuat menjadi reusable workflow menggunakan workflow_call.
on:
workflow_call:
Workflow lain kemudian dapat memanggilnya menggunakan uses. Pendekatan ini mengurangi duplikasi konfigurasi dan membuat pipeline lebih mudah dipelihara.
Secrets dan Variables
Credential seperti AWS keys, API token, dan database credentials jangan ditulis langsung di workflow.
Simpan informasi sensitif menggunakan GitHub Secrets. Untuk kebutuhan yang berbeda antara staging dan production, gunakan environment-level secrets agar akses dapat dipisahkan.
Matrix Strategy
GitHub Actions juga mendukung matrix strategy untuk menjalankan pengujian pada beberapa environment secara paralel.
Contohnya:
strategy:
matrix:
node-version: [18, 20, 22]
Dengan cara ini, aplikasi dapat diuji pada beberapa versi Node.js tanpa membuat job secara manual.
Optimasi Workflow
Pipeline yang terlalu panjang dapat memperlambat proses development. Gunakan dependency caching, jalankan job yang independen secara paralel, dan hindari menjalankan proses yang tidak diperlukan pada setiap perubahan.
Untuk project besar, pisahkan workflow berdasarkan kebutuhan seperti testing, build, security scanning, dan deployment agar lebih mudah dikelola.
Kesimpulan
GitHub Actions membantu mengotomatisasi workflow development dari testing hingga deployment. Dengan CI/CD yang terstruktur, reusable workflow, secrets management, dan matrix testing, tim dapat mempercepat delivery sekaligus menjaga kualitas kode.