Implementasi Git Deployment di cPanel

Fitur Git™ Version Control di cPanel memungkinkan Anda untuk men-deploy situs atau aplikasi dari repositori GitHub (Git) yang dikelola.

Berikut adalah cara yang dapat Anda gunakan untuk men-deploy dari repositori Github ke cPanel secara otomatis (push deployment) ataupun secara manual (pull deployment).

The deployment YAML file

File .cpanel.yml menentukan bagaimana dan dimana file akan di deploy. Agar dapat berfungsi pastikan file .cpanel.yml sudah ada di repositori atau dibuat sebelum Anda mengkloningnya ke cPanel.

Misalnya untuk men-deploy file tertentu seperti index.html dan style.css ke direktori public_html.

---
deployment:
  tasks:
    - export DEPLOYPATH=/home/example/public_html/
    - /bin/cp index.html $DEPLOYPATH
    - /bin/cp style.css $DEPLOYPATH

Untuk menyalin direktori berserta seluruh isinya le direktori public_html.

---
deployment:
  tasks:
    - export DEPLOYPATH=/home/example/public_html/
    - /bin/cp -R images $DEPLOYPATH

Automatic or push deployment

Dengan push deployment, satu perintah git push mengirimkan perubahan dari komputer lokal Anda ke repositori yang dikelola cPanel. Lalu sistem kemudian secara otomatis menjalankan perintah pada file .cpanel.yml Anda.

Konfigurasi ini akan mengirimkan perubahan dari repositori yang dikelola cPanel ke direktori produksi secara otomatis. (Misalnya, ke direktori public_html)

Login ke cPanel lalu arahkan ke menu Git™ Version Control

Klik button Create untuk menambahkan repo dan atur seperti contoh berikut.

Selanjutnya akan muncul contoh perintah yang dapat Anda gunakan untuk project yang sudah ada atau project yang baru dimulai.

For an existing project

cd /path/to/your/repo
git remote add origin ssh://[email protected]:3322/home/user/repositories/web1
git push -u origin master

To start a new project

git clone ssh://[email protected]:3322/home/user/repositories/web1
cd web1
echo "# README" >> README.md
git add README.md
git commit -m "Initial Commit"
git push -u origin master

Pastikan shell pada user cPanel Anda diaktifkan agar dapat mengkloning atau push perubahan ke repositori yang dikelola cPanel.

$ git push -u origin main
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 269 bytes | 269.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Recieved update on checked-out branch, queueing deployment.
remote: ---
remote: apiversion: 3
remote: func: create
remote: module: VersionControlDeployment
remote: result:
remote:   data:
remote:     deploy_id: 11
remote:     log_path: /home/user/.cpanel/logs/vc_1700437995.27537_git_deploy.log
remote:     repository_root: /home/user/repositories/web1
remote:     sse_url: /sse/UserTasks/00000000_655a9feb438f07/vc_1700437995.27537_git_deploy.log
remote:     task_id: 00000000/655a9feb438f07
remote:     timestamps:
remote:       queued: '1700437995.4484'
remote:   errors: ~
remote:   messages: ~
remote:   metadata: {}
remote:
remote:   status: 1
remote:   warnings: ~
To ssh://example.com:3322/home/user/repositories/web1
   9506387..972a543  main -> main
branch 'main' set up to track 'origin/main'.

Setelah menjalankan salah satu dari perintah sesuai kondisi yang ada. Selanjutnya kembali ke menu Git™ Version Control lalu cek tab Pull or Deploy untuk memastikan perubahan dan auto deploy berhasil.

Manual or pull deployment

Dengan pull deployment, perintah git push mengirimkan perubahan dari komputer lokal Anda ke repositori jarak jauh (GitHub).

Jadi untuk proses deploy ke direktori produksi (misalnya, ke direktori public_html) harus secara manual dengan mengklik Update from Remote di tab Pull or Deploy untuk mengambil perubahan dari repositori jarak jauh ke repositori yang dikelola cPanel.

Kemudian klik Deploy HEAD Commit agar sistem menjalankan perintah di file .cpanel.yml untuk men-deploy perubahan dari repositori yang dikelola cPanel ke direktori produksi.

Klik button Create untuk menambahkan repo dan atur seperti contoh berikut.

Tunggu proses clone selesai.

Lalu buat perubahan ke repositori jarak jauh lalu test deploy dengan mengklik Update from Remote dan Deploy HEAD Commit