След като извършите промени по хранилището в cPanel, можете да прехвърлите окончателната версия на проекта или части от него към друга директория в хостинг акаунта (например тази на реалния сайт).
Прехвърлянето може да се извърши ръчно или напълно автоматично, след като използвате push на промените към cPanel хранилището.
Автоматично прехвърляне на промените
Автоматичното прехвърляне на промените (deploy) е възможно, когато подадете push заявка към хранилището в cPanel. Например cPanel хранилището е основното за проекта и към него Вие подавате промените с push.
Системата автоматично засича push заявките и активира изпълнението на задачите във файла .cpanel.yml.
Ръчно прехвърляне на промените
Ръчното прехвърляне на промените се извършва, когато не можете да подадете директна push заявка към cPanel хранилището. Например основното хранилище е отдалечено и се намира в GitHub. В този случай, Вие първо изтегляте промените от GitHub през cPanel » Git Version Control » Управление (на хранилището) и бутона Update from Remote (или pull заявка през SSH достъп). И след това ще можете да извършите прехвърляне към директория в акаунта чрез бутона Deploy HEAD Commit. Кликването на този бутон активира изпълнението на файла .cpanel.yml.
За да е възможно автоматичното прехвърляне към директория в хостинг акаунта, уверете се, че избраното хранилище отговаря на следните изисквания:
- Има активен branch или дърво от файлове и директории.
- В основната директория на хранилището съществува коректен .cpanel.yml файл (добавен там през Git).
- Няма промени в текущия активен branch, за които не е направен commit.
Когато всички условия за Deploy са спазени, може да се извърши прехвърляне на промените в дадена директория.
Файл .cpanel.yml
Файлът .cpanel.yml определя как и къде да се прехвърлят промените. Прехвърлянето представлява копиране на файловете и директориите от хранилището в избрана директория в хостинг акаунта.
Във файла .cpanel.yml се поставят на нов ред командите, които ще се изпълнят при изпълнението на файла. Може да се използват различни Linux команди.
Създаване на файла .cpanel.yml
Файлът .cpanel.yml е нужно да се качи в cPanel хранилището чрез Git. Когато не е наличен този файл, в интерфейса на cPanel » Git Version Control » Управление » Pull или Deploy бутонът Deploy HEAD Commit няма да е активен.
Например ако публикувате от Ваше локално хранилище, към отдалеченото в cPanel, следвайте посочените стъпки, за да добавите файла .cpanel.yml.
1. Създайте файл .cpanel.yml в локалното хранилище.
Няма значение как ще добавите файла в локалното хранилище. Например може да го създадете с командата:
touch .cpanel.yml
Ако вече знаете какви задачи искате да поставите в този файл, може да го отворите с предпочитания текстов редактор, например:
vim .cpanel.yml
или
notepad .cpanel.yml
2. Публикувайте промените в локалното хранилище.
Подгответе промените за публикуване с:
git add .
И ги публикувайте:
git commit -m ‘created cpanel.yml file’
3. Изпратете промените към отдалеченото cPanel хранилище.
За да изпратите промените към cPanel хранилището, използвайте:
git push origin master
Файлът .cpanel.yml трябва да е качен успешно в директорията на хранилището в cPanel.
Бутонът Deploy HEAD Commit в cPanel » Git Version Control » Управление » Pull или Deploy трябва да е активен.
Автоматичното изпълнение на задачите от файла .cpanel.yml се случва, след като Git в cPanel засече получена команда push към cPanel хранилището. Например от Вашето локално хранилище качвате промените с push в cPanel хранилището.
Ако използвате отдалечено хранилище в GitHub например, първо трябва да качите .cpanel.yml файла в него и след това да дръпнете (pull) промените в cPanel хранилището от cPanel » Git Version Control » Управление » Pull или Deploy » Update from Remote. След като дръпнете промените, файлът .cpanel.yml ще се намира в cPanel хранилището и бутонът „Deploy HEAD Commit“ ще стане активен.
Бележка: Когато не подавате директно push към cPanel хранилището (например използвате pull от cPanel хранилището, за да издърпате промените от GitHub хранилище), вместо всеки път ръчно да използвате бутона „Deploy HEAD Commit“, може да се създаде крон задача, която периодично ще задейства процеса по Deploy:
/usr/local/cpanel/bin/uapi VersionControlDeployment create repository_root=/home/cpuser/repositorypath
/home/cpuser/repositorypath – заменете с пътя до хранилището;
Съдържание на файла .cpanel.yml
Примерно съдържание на файла .cpanel.yml:
---
deployment:
tasks:
- export DEPLOYPATH=/home/cpuser/public_html
- /bin/cp filename $DEPLOYPATH
- /bin cp subfolder $DEPLOYPATH
DEPLOYPATH – съдържа целия път до целевата директория;
/bin/cp – това е изпълнимият файл на Linux командата „copy“;
filename – име на файла, например index.html; така зададена задачата на този ред, ще потърси файла filename в основната директория в хранилището;
subfolder – поддиректория; така зададена задачата, ще копира само поддиректорията без съдържанието в нея;
Целевата директория, в която ще се копира съдържанието, може да е всяка в хостинг акаунта, например поддиректория на public_html:
DEPLOYPATH=/home/cpuser/public_html/dir
Няколко примерни задачи за копиране на съдържание от хранилището в целевата директория.
Копиране на цялото съдържание на поддиректория:
- /bin/cp -r images $DEPLOYPATH
Атрибутът „-r“ към командата cp указва рекурсивно копиране на цялото съдържание от директорията images. Ако директорията не съществува, автоматично ще бъде създадена.
Копиране на точно определен файл, намиращ се в поддиректория:
- /bin/cp css/style.css $DEPLOYPATH/css
Тъй като параметърът DEPLOYPATH съдържа само основната директория (/home/cpuser/public_html), ако не се допълни към него пътя до поддиректорията (/css), файлът style.css ще се копира в основната директория (public_html).
Копиране на цялото съдържание на хранилището:
- /bin/cp -r *
Ако премахнете някой файл от хранилището, този файл няма да се премахне автоматично от директорията на сайта. Ще трябва да го премахнете ръчно.
Вижте още:
🔗 Създаване на Git хранилище в cPanel | Help
🔗 Основни Git понятия и команди | Help