Membangun CI/CD Pipeline Sederhana untuk Aplikasi Web Menggunakan GitHub Actions

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:

TEXT
.github/
└── workflows/
    └── deploy.yml


**2. Menulis Konfigurasi deploy.yml**

Buka berkas deploy.yml dan masukkan konfigurasi dasar berikut untuk mengotomatiskan pengujian dan proses build:

YAML
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 perintah push atau Pull Request ke branch main.
  • jobs: Serangkaian langkah yang dijalankan pada lingkungan virtual (di atas menggunakan ubuntu-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:

YAML
    - 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.

0 KomentarShare

Komentar0

Komentar tampil otomatis; Anda dapat menghapus komentar Anda sendiri.

Belum ada komentar. Jadilah yang pertama berdiskusi!

Mari Bangun Solusi Digital Bersama

Diskusikan kebutuhan teknologi bisnis Anda bersama tim konsultan Kyfera.

Jadwalkan Konsultasi