Auto Deployment on cPanel Using Github Actions

Panduan ini akan membahas cara untuk deploy situs atau aplikasi dari Github ke cPanel menggunakan Github Actions. Ini dapat mempermudah Anda dalam melakukan perubahan file yang ada di repositori tanpa harus men-deploynya lagi secara manual di cPanel.

Create FTP Account

Login ke cPanel lalu klik menu FTP Accounts

Buat akun FTP.

Simpan username dan password untuk ditambahkan sebagai secret di repositori Github.

Configure Github Actions

FTP-Deploy-Action

Buka repositori Anda di Github lalu klik Settings » Actions secrets and variables » Actions

Klik New repository secret dan tambahkan username, password, dan IP server FTP.

Selanjutnya buat GitHub action workflow. Klik tab Actions dan pilih set up a workflow yourself

Edit main.yml menggunakan konfigurasi berikut.

name: Deploy File to cPanel
on:
  push:
    branches:
      - master
jobs:
  FTP-Deploy-Action:
    name: Deploy
    runs-on: ubuntu-latest

    steps:
      - name: Get latest code
        uses: actions/checkout@v3
        with:
          fetch-depth: 2

      - name: Sync folders and files to the server
        uses: SamKirkland/[email protected]
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
Sesuaikan branches dengan yang digunakan sebagai produksi.

Klik Commit changes untuk menyimpan konfigurasi.

Untuk pengetesan, coba tambahkan atau edit file di repositori yang digunakan. Lalu git push untuk menerapkan perubahan dan memulai proses deploy.

Jika berhasil maka akan tampil seperti berikut.

Anda juga dapat melihat log per step.

SCP-Deploy-Action

Anda juga dapat menggunakan SCP untuk mengirim file dan folder ke server.

Buka repositori Anda di Github lalu klik Settings » Actions secrets and variables » Actions

Klik New repository secret dan tambahkan username, private key SSH, IP server SSH, dan port SSH

Selanjutnya buat GitHub action workflow. Klik tab Actions dan pilih set up a workflow yourself

Edit main.yml menggunakan konfigurasi berikut.

name: Deploy File to cPanel
on:
  push:
    branches:
      - master
jobs:
  SCP-Deploy-Action:
    name: Deploy
    runs-on: ubuntu-latest

    steps:
      - name: Get latest code
        uses: actions/checkout@v3
        with:
          fetch-depth: 2

      - name: copy file to server
        uses: appleboy/[email protected]
        with:
          host: ${{ secrets.SSH_SERVER }}
          username: ${{ secrets.SSH_USERNAME }}
          key: ${{ secrets.SSH_KEY }}
          port: ${{ secrets.SSH_PORT }}
          source: ./*
          target: public_html/web1/

Klik Commit changes untuk menyimpan konfigurasi.

Untuk pengetesan, coba tambahkan atau edit file di repositori yang digunakan. Lalu git push untuk menerapkan perubahan dan memulai proses deploy.