
Membangun CI/CD Pipeline Sederhana untuk Aplikasi Web Menggunakan GitHub Actions
BY Tim Kyfera | Zaky•Wawasan
Proses deployment manual sering kali menyita waktu dan rentan terhadap kesalahan (human error), seperti lupa menjalankan pengujian atau melewatkan berkas konfigurasi penting. Dengan menerapkan CI/CD (Continuous Integration / Continuous Deployment), setiap perubahan kode yang Anda dorong ke repository dapat diuji dan diunggah ke server secara otomatis.
Salah satu alat paling populer dan praktis untuk kebutuhan ini adalah GitHub Actions. Artikel ini akan membahas langkah dasar menyusun alur kerja CI/CD untuk aplikasi web berbasis Node.js.
1. Persiapan Struktur Workflow
GitHub Actions membaca konfigurasi alur kerja melalui berkas berformat YAML yang diletakkan pada direktori khusus di dalam proyek Anda.
Buat direktori dan berkas berikut di dalam proyek:
.github/
└── workflows/
└── deploy.yml
**2. Menulis Konfigurasi deploy.yml**
Buka berkas deploy.yml dan masukkan konfigurasi dasar berikut untuk mengotomatiskan pengujian dan proses build:
name: Node.js CI/CD Pipeline
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install Dependencies
run: npm ci
- name: Run Tests
run: npm test
- name: Build Project
run: npm run build
3. Memahami Komponen Utama
on: Menentukan pemicu (trigger) eksekusi. Konfigurasi di atas akan menjalankan alur kerja setiap kali ada perintahpushatau Pull Request ke branchmain.jobs: Serangkaian langkah yang dijalankan pada lingkungan virtual (di atas menggunakanubuntu-latest).steps: Urutan perintah yang dijalankan bertahap, mulai dari mengambil kode terbaru (actions/checkout), mengonfigurasi Node.js, hingga menjalankan skrip pengujian dan pembentukan aset produksi (npm run build).
4. Menambahkan Tahap Deployment
Setelah proses build berhasil, Anda dapat menambahkan langkah untuk mengirim berkas hasil build ke server VPS via SSH atau layanan hosting seperti Vercel, Netlify, atau AWS.
Contoh penambahan step deployment menggunakan SSH:
- name: Deploy to VPS
uses: appleboy/rsync-action@master
with:
HOST: ${{ secrets.SERVER_HOST }}
USERNAME: ${{ secrets.SERVER_USER }}
KEY: ${{ secrets.SSH_PRIVATE_KEY }}
TARGET: /var/www/my-app
Catatan Keamanan: Selalu simpan data sensitif seperti IP server, Username, dan SSH Key di menu Settings > Secrets and variables > Actions pada repository GitHub Anda, bukan secara langsung di dalam kode.
Kesimpulan
Mengimplementasikan CI/CD tidak selalu rumit. Dengan beberapa baris konfigurasi YAML pada GitHub Actions, Anda sudah memiliki sistem otomatisasi yang memastikan kode teruji dengan baik sebelum sampai ke lingkungan produksi.
FAQ Artikel (Pertanyaan & Jawaban)
Q1: Apakah GitHub Actions gratis untuk digunakan? A1: Ya, GitHub Actions menyediakan kuota gratis sebesar 2.000 menit eksekusi per bulan untuk akun gratis pada repository publik maupun privat.
Q2: Apa bedanya npm install dan npm ci dalam workflow CI/CD?
A2: npm ci dirancang khusus untuk lingkungan otomatisasi (CI/CD). Perintah ini menginstal dependensi secara tepat sesuai dengan package-lock.json sehingga proses build lebih stabil, konsisten, dan cepat.
Q3: Bagaimana jika alur kerja gagal di tengah jalan? A3: GitHub akan langsung menghentikan proses eksekusi dan mengirimkan notifikasi kegagalan via email. Kode baru yang bermasalah tidak akan ter-deploy ke server hingga masalah tersebut diperbaiki.
Komentar0
Belum ada komentar. Jadilah yang pertama berdiskusi!