Skip to Content

Tutorial Mudah Membuat Auto Deploy Menggunakan GitHub Action

Manfaatkan fitur GitHub Action untuk memudahkan proses development Anda

Dalam dunia pengembangan perangkat lunak, otomatisasi deployment menjadi salah satu aspek penting untuk meningkatkan efisiensi dan kecepatan rilis. GitHub Actions hadir sebagai solusi yang memungkinkan pengembang untuk membuat alur kerja otomatis (workflow) langsung dari repository GitHub. Dengan GitHub Actions, proses deployment aplikasi bisa dilakukan secara otomatis setiap kali ada perubahan kode, tanpa perlu intervensi manual. Fitur ini mempermudah integrasi antara pengembangan dan operasi (DevOps), sehingga perubahan pada aplikasi dapat di-deploy ke server dengan cepat dan konsisten. Pada artikel ini, kita akan membahas langkah-langkah mudah untuk membuat auto deploy menggunakan GitHub Actions.

Apa Itu Auto Deploy?

Auto deploy adalah proses otomatisasi deployment aplikasi ke server setelah perubahan diterapkan pada repository kode. Dengan auto deploy, setiap kali ada update di branch tertentu (seperti main atau production), proses deployment akan dilakukan secara otomatis tanpa campur tangan manual. Keuntungan utamanya adalah meminimalkan kesalahan manusia, mempercepat rilis, dan menjaga konsistensi.

Apa Itu GitHub Action?

GitHub Actions adalah fitur bawaan GitHub yang memungkinkan kita mengotomatiskan berbagai workflow, termasuk continuous integration dan continuous deployment (CI/CD). Dengan GitHub Actions, kita bisa membuat alur kerja (workflow) yang memicu proses deploy setiap kali ada perubahan di repository. GitHub Action menyediakan lingkungan eksekusi berbasis event seperti push, pull request, dan lain-lain. Sebagai informasi, GitHub Action tidak hanya dapat digunakan untuk Auto Deploy, Anda juga dapat menambahkan proses-proses sebelum deployment seperti Code Review, Security Assessment, dan lain sebagainya.

Langkah-Langkah Membuat Auto Deploy

Berikut adalah langkah-langkah mudah untuk melakukan konfigurasi Auto Deploy menggunakan GitHub Action.

Setup SSH Access di Server

Untuk melakukan deployment, GitHub Action perlu mengakses server kita. Oleh karena itu kita perlu melakukan setup akses SSH antara GitHub dan server. Akses ssh yang mungkin digunakan adalah ssh key. Kita harus membuat ssh key pair yang akan digunakan oleh GitHub Action. Berikut langkah-langkahnya:

  • Buat SSH key di lokal komputer: ssh-keygen -t rsa -b 4096 -C "email@example.com"
  • Dari proses tersebut akan ter-generate 2 file yaitu private key dan public key. Default filename untuk private key adalah id_rsa, sedangkan untuk public key adalah id_rsa.pub.
  • Salin public key ke server. Letakkan pada path /hone/<nama user>/.ssh/. 
  • Copy konten dari public key tersebut ke file authorized_keys. Anda bisa membuat file baru jika authorized_keys belum ada.
  • Verifikasi koneksi SSH dengan login menggunakan private key yang sudah anda buat sebelumnya.

Setup GitHub Secret untuk Akses ke Server

Agar GitHub Action dapat menggunakan SSH key untuk login ke server, kita harus menyimpan private key sebagai secret di GitHub:

  1. Masuk ke repository GitHub dan buka "Settings".
  2. Pilih "Secrets and variables" > "Actions".
  3. Buat secret baru dengan nama SSH_KEY, lalu masukkan private key yang dihasilkan sebelumnya.
  4. Buat secret baru dengan nama SSH_HOST, lalu masukkan ip dari server tujuan Anda.
  5. Buat secret baru dengan nama SSH_USER, lalu masukkan username yang anda gunakan untuk mengakses ssh.

Membuat Workflow File untuk Melakukan Deploy

Selanjutnya, kita akan membuat file workflow untuk proses deployment otomatis:

  • Buat folder .github/workflows di repository kamu.
  • Tambahkan file YAML, misalnya deploy.yml, dengan isi seperti berikut:
yamlCopy codename: Deploy to Server

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Copy files to SSH Server
​uses: easingthemes/ssh-deploy@main
​with:
          SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY }}
          ARGS: "-rlgoDzvc -i --delete"
          SOURCE: "./"
          REMOTE_HOST: ${{ secrets.SSH_HOST }}
          REMOTE_USER: ${{ secrets.SSH_USER }}
          TARGET: ~/path/to/app-folder/

File ini akan memicu deployment setiap kali ada push ke branch main.

Cek Progress Deploy di GitHub Action

Coba lakukan commit pada branch "main", setelah itu pantau proses deployment:

  1. Buka tab "Actions" di repository GitHub.
  2. Di sini, kamu dapat melihat progress dari setiap workflow yang dijalankan, termasuk jika ada error atau sukses.

Cek Hasil Deploy di Server

Setelah proses deploy selesai, pastikan untuk memverifikasi bahwa aplikasi berhasil dideploy di server. Kamu bisa mengakses aplikasi di domain atau IP server yang bersangkutan untuk mengecek apakah update sudah diterapkan.

Langkah-langkah di atas membantu mempermudah integrasi alur kerja dari repository GitHub ke server produksi secara langsung. Selain meningkatkan kecepatan dan konsistensi rilis aplikasi, penerapan auto deploy juga memungkinkan tim DevOps untuk bekerja lebih produktif. Dengan konfigurasi yang tepat, GitHub Actions dapat menjadi alat yang andal dalam membangun pipeline deployment yang otomatis dan aman.



Photo by Roman Synkevych on Unsplash

Bagus Fibrianto October 3, 2024
Share this post
Tags
Archive
Sign in to leave a comment
Teknik Melakukan Deployment Pada Lingkungan Server Multi Nodes
Bagaimana melakuan deployment ke semua node server tanpa mengorbankan ketersediaan aplikasi kita