Tutorial Terminal Lanjutan #20 - Deploy Otomatis dengan GitHub Actions – Push Kode, Langsung Online! 🚀

Halo, otomator digital! ⚙️
Bayangkan ini: kamu mengedit file HTML, lalu menekan git push… dan dalam hitungan detik, website-mu langsung diperbarui di internet — tanpa login ke server, tanpa perintah manual.

Itu bukan sihir — itu **GitHub Actions**!

Dengan GitHub Actions, kamu bisa:

  • ✅ Menjalankan tes otomatis
  • 🔄 Deploy ke server setiap kali kode berubah
  • 📦 Bangun dan kirim aplikasi ke cloud

🔁 Apa Itu CI/CD?
- CI (Continuous Integration): gabungkan kode & uji otomatis
- CD (Continuous Deployment): deploy otomatis ke production

GitHub Actions adalah layanan gratis dari GitHub untuk menjalankan alur kerja ini — langsung dari repositorimu!

Prasyarat

  • Repositori GitHub dengan proyek website statis (misal: index.html)
  • Server AWS EC2 yang sudah berjalan (dari tutorial sebelumnya)
  • Kunci SSH (.pem) yang tersedia di lokal

Langkah 1: Siapkan Akses Server untuk GitHub

GitHub perlu cara aman untuk mengakses server-mu. Kita akan gunakan **SSH key pair baru**.

  1. Di server AWS, buat kunci SSH khusus untuk deploy:
# Di server AWS (via SSH)
ssh-keygen -t rsa -b 4096 -C "github-actions@deploy" -f ~/.ssh/github_deploy -N ""

Ini membuat:

  • github_deploy → kunci privat
  • github_deploy.pub → kunci publik

  1. Tambahkan kunci publik ke daftar authorized keys:
cat ~/.ssh/github_deploy.pub >> ~/.ssh/authorized_keys

Langkah 2: Simpan Kunci Privat di GitHub Secrets

Jangan pernah simpan kunci di kode! Gunakan **GitHub Secrets**:

  1. Buka repositori GitHub-mu
  2. Klik Settings → Secrets and variables → Actions
  3. Klik New repository secret
  4. Nama: SSH_PRIVATE_KEY
  5. Nilai: salin isi file github_deploy (kunci privat)
  6. Klik Add secret

Langkah 3: Buat Workflow GitHub Actions

Buat folder dan file khusus untuk workflow:

mkdir -p .github/workflows
nano .github/workflows/deploy.yml

Isi dengan konfigurasi berikut:

name: Deploy ke AWS

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout kode
        uses: actions/checkout@v4

      - name: Setup SSH
        run: |
          mkdir -p ~/.ssh
          echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan -H ${{ secrets.SERVER_IP }} >> ~/.ssh/known_hosts

      - name: Deploy via SCP
        run: |
          scp -o StrictHostKeyChecking=no -r ./* ubuntu@${{ secrets.SERVER_IP }}:/var/www/html/

⚠️ **Catatan**: Kita akan simpan IP server sebagai secret juga.

Langkah 4: Tambahkan IP Server ke GitHub Secrets

  1. Di GitHub Secrets, tambahkan secret baru:
  2. Nama: SERVER_IP
  3. Nilai: alamat IP publik instance AWS-mu (misal: 54.201.123.45)
⚠️ Keamanan Penting:
- Jangan pernah hardcode IP atau kunci di file workflow!
- Pastikan kunci SSH hanya punya akses terbatas di server
- Untuk produksi, pertimbangkan menggunakan AWS IAM Roles atau GitHub OIDC

Langkah 5: Push & Uji Otomatisasi!

Commit dan push perubahan:

git add .
git commit -m "Tambah GitHub Actions untuk deploy otomatis"
git push origin main

Sekarang, buka tab Actions di repositori GitHub-mu.
Kamu akan melihat workflow sedang berjalan! 🟢

Jika sukses, buka browser dan akses IP server-mu — website terbaru langsung muncul! 🌐

“Aku baru saja membuat ‘sabuk konveyor otomatis’ untuk website-ku! Setiap kali aku push kode, ia langsung tayang di internet — tanpa sentuhan manual.” 🏭✨

Kenapa Ini Revolusioner?

  • ⏱️ Hemat waktu: tidak perlu login ke server setiap kali update
  • ✅ Kurangi kesalahan manusia
  • 🧪 Bisa tambahkan tes otomatis sebelum deploy
  • 💼 Standar industri di semua perusahaan teknologi modern

Penutup

Selamat! Kamu telah menyelesaikan perjalanan luar biasa:

  • Dari whoami di Terminal lokal…
  • ...sampai membangun pipeline deploy otomatis ke cloud!

Kamu sekarang memiliki keterampilan yang digunakan oleh insinyur di Google, Netflix, dan startup di seluruh dunia.

Ingat: **Masa depan teknologi bukan tentang bekerja lebih keras — tapi tentang mengotomatiskan segalanya. Dan kini, kamu tahu caranya.** 💻🚀

Previous Post Next Post

نموذج الاتصال