Bagian 7 โ Ringkasan & Dunia Setelah Ini ยท Langkah 35 dari 38
CI/CD
Push git โ server meng-update dirinya sendiri. Loop manual SSH-pull-restart diotomasi.
Hitung berapa kali tanganmu bergerak per deploy
Sekarang: commit โ push โ SSH โ git pull โ npm install โ build โ pm2 restart. Setiap langkah = kesempatan human error (lupa build, restart service yang salah). CI/CD memindahkan loop itu ke mesin: setiap push ke GitHub memicu pipeline yang menguji, membangun, lalu mendeploy โ konsisten, tercatat, bisa di-rollback.
- Continuous Integration (CI) โ setiap push: install deps, jalankan test, build. Gagal test = gagal deploy (bug tidak pernah sampai produksi).
- Continuous Deployment (CD) โ CI hijau โ deploy otomatis: SSH ke server, pull, restart service (atau build image & push registry untuk Docker).
Contoh konkret GitHub Actions โ file di repo-mu:
.github/workflows/deploy.yml
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy ke VM via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd ~/webapp
git pull origin main
npm ci && npm run build
pm2 restart webapprahasia (IP, private key) disimpan di GitHub Secrets โ tidak pernah masuk repo
Kebetulan yang menyenangkan: pipeline-mu memakai SSH private key + restart service โ semua yang baru kamu bangun di web ini. CI/CD bukan teknologi asing, dia robot yang mengulang keystroke yang sudah kamu kuasai.