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