DevOps Pemula: Membangun CI/CD Pipeline Otomatis dengan GitHub Actions & Docker
Dalam kultur DevOps modern, tidak ada lagi proses pengunggahan kode secara manual via FTP ke server. Saat ini, tim engineering kelas dunia menggunakan CI/CD (Continuous Integration / Continuous Deployment) untuk mengotomatisasi pengujian dan publikasi aplikasi setiap kali terjadi penambahan kode di GitHub.
1. Konsep Dasar CI/CD dan Containerization
Dua instrumen utama yang paling dicari dalam wawancara kerja teknis secara global adalah GitHub Actions dan Docker:
- Continuous Integration (CI): Secara otomatis menjalankan unit test dan pengecekan linter setiap kali ada Pull Request baru untuk memastikan tidak ada bug yang lolos.
- Continuous Deployment (CD): Mengemas aplikasi ke dalam sebuah Docker Container Image yang identik, dan mendistribusikannya ke lingkungan staging atau production server secara seketika.
2. Latihan Praktik: Membuat Workflow CI/CD
Dalam latihan praktik ini, kita akan membuat file konfigurasi GitHub Actions bertipe YAML yang secara otomatis memverifikasi dan menguji proyek PHP/Node.js Anda.
Panduan Implementasi:
- Di dalam repositori GitHub Anda, buat direktori baru bernama
.github/workflows/ - Buat file baru di dalamnya dengan nama
ci-cd-pipeline.yml - Salin konfigurasi contoh di bawah ini dan lakukan commit ke branch
main. - Buka tab Actions di GitHub untuk melihat pipeline Anda berjalan secara otomatis!
3. Contoh Kode: File Konfigurasi GitHub Actions (.github/workflows/ci.yml)
Berikut adalah contoh template workflow CI untuk menguji aplikasi PHP 8.4 secara otomatis:
name: DEN.BIZ.ID CI/CD Automation Pipeline
on:
push:
branches: [ "main", "staging" ]
pull_request:
branches: [ "main" ]
jobs:
test-and-build:
runs-on: ubuntu-latest
steps:
- name: 1. Checkout Code from Repository
uses: actions/checkout@v4
- name: 2. Setup PHP Environment
uses: shivammathur/setup-php@v2
with:
php-version: '8.4'
extensions: mbstring, sqlite3, pdo, json
tools: composer:v2
- name: 3. Check PHP Syntax Error (Linting)
run: |
find . -name "*.php" -print0 | xargs -0 -n1 php -l
- name: 4. Build Docker Container Image
run: |
echo "FROM php:8.4-cli" > Dockerfile
echo "WORKDIR /app" >> Dockerfile
echo "COPY . /app" >> Dockerfile
docker build -t denbizid/portal:latest .
4. Acuan & Referensi GitHub Resmi
Pelajari dokumentasi open-source dari repositori utama berikut:
- Docker Engine: https://github.com/docker/docker-ce — Repositori resmi Docker Community Edition.
- GitHub Actions Checkout: https://github.com/actions/checkout — Action standar resmi untuk checkout repositori.
Acuan & Referensi Resmi GitHub
Materi ini merujuk pada standar open-source produksi
Kuis Interaktif — Uji Pemahaman Anda!
Tes seberapa jauh penguasaan Anda atas materi dan latihan praktik di atas