CI/CD Sederhana

๐Ÿ”„ Bab 15 – SOP CI/CD Sederhana dengan Git di Ubuntu Server

CI/CD Sederhana dengan Git di Ubuntu Server. Bab ini akan membuat dokumentasi kamu semakin praktis, karena dengan Continuous Integration/Continuous Deployment (CI/CD), website atau aplikasi bisa otomatis ter-deploy setiap kali ada perubahan di repository Git.

๐ŸŽฏ Tujuan

  • Menghubungkan repository Git dengan server.
  • Mengatur workflow sederhana agar setiap update di Git otomatis ter-deploy.
  • Memastikan proses deployment lebih cepat, konsisten, dan minim error.

๐Ÿ”ง Lingkup

  • Sistem operasi: Ubuntu Server
  • Tools: Git, SSH, bash script
  • Repository: GitHub/GitLab/Bitbucket
  • Target: folder web server (/var/www/html atau project folder)

3. Langkah Kerja

๐Ÿ“ฆ 3.1 Instalasi Git di Server

sudo apt update
sudo apt install git -y
git --version
      

๐Ÿ“ฅ 3.2 Clone Repository ke Server

  1. Masuk ke folder web:
    cd /var/www/html
              
  2. Clone repository:
    sudo git clone https://github.com/username/project.git
              
  3. Atur permission:
    sudo chown -R $USER:$USER project
              

๐Ÿ” 3.3 Konfigurasi SSH Key (Opsional, untuk akses private repo)

  1. Buat SSH key di server:
    ssh-keygen -t rsa -b 4096
              
  2. Copy public key:
    cat ~/.ssh/id_rsa.pub
              
  3. Tambahkan ke GitHub/GitLab → Settings → SSH Keys.

๐Ÿ”„ 3.4 Workflow Deployment Manual

Masuk ke folder project:

cd /var/www/html/project
git pull origin main
      

→ Update otomatis dari branch main.

⚙️ 3.5 Automasi Deployment dengan Hook Git

  1. Masuk ke folder repo di server:
    cd /var/www/html/project/.git/hooks
              
  2. Buat file post-merge:
    nano post-merge
              
  3. Isi script:
    #!/bin/bash
    cd /var/www/html/project
    git pull origin main
    sudo systemctl restart apache2
              
  4. Simpan, beri izin eksekusi:
    chmod +x post-merge
              

→ Setiap kali ada merge/pull, website otomatis update dan service restart.

3.6 Automasi Deployment dengan Cron (Alternatif)

Jika tidak pakai hook, bisa pakai cron:

crontab -e
      

Tambahkan:

*/10 * * * * cd /var/www/html/project && git pull origin main && sudo systemctl restart apache2
      

→ Update setiap 10 menit.

4. Command Ringkas

Fungsi Command
Install Git sudo apt install git -y
Clone repo git clone https://github.com/username/project.git
Pull update git pull origin main
Buat SSH key ssh-keygen -t rsa -b 4096
Hook post-merge Buat file .git/hooks/post-merge
Cron auto update crontab -e

5. Catatan Penting

  • Gunakan branch main atau master untuk deployment stabil.
  • ๐Ÿ”’
    Pastikan permission folder web benar agar Git bisa menulis file.
  • ๐Ÿ”
    Gunakan SSH key untuk repo private agar lebih aman.
  • ๐Ÿงช
    Uji dulu script hook/cron sebelum dipakai di production.
๐Ÿ‘‰ Dengan bab ini, kamu sudah bisa membuat CI/CD sederhana dengan Git sehingga deployment lebih cepat dan otomatis.

Komentar

Postingan populer dari blog ini

Automation dengan Ansible

Logging & Observability Modern (ELK Stack)

Docker & Container