The problem arises when i attempt to deploy the code in the repository to a production directory on my server.
According to cpanel documentation about deployment, in order to deploy, a git repository must contain a .cpanel.yml
file which is committed with the following example data:
---
deployment:
tasks:
- export DEPLOYPATH=/home/user/public_html/
- /bin/cp index.html $DEPLOYPATH
- /bin/cp style.css $DEPLOYPATH
I have tried various different configurations of this file in order to be able to deploy but couldn't get it to work. I cannot find any more documentation or any further develop examples or sample files.
The relevant structure of my linux server is thus:
home/<username>/
- git/gitrepo/
- all of the git files and folders
- public_html/<app_folder>/
I would like to deploy all of the files and folders in the git repository into the public_html/<app_folder>/
directory.
I have tried the following different configurations:
---
deployment:
tasks:
- export DEPLOYPATH=/home/<username>/public_html/<app_folder>
- / $DEPLOYPATH
---
deployment:
tasks:
- export DEPLOYPATH=/home/user/public_html/
- /bin/cp $DEPLOYPATH
---
deployment:
tasks:
- export DEPLOYPATH=/home/user/public_html/
- / index.html $DEPLOYPATH // Tried just one file to see if would work but it didn't.
---
deployment:
tasks:
- export DEPLOYPATH=/home/user/public_html/
- /bin/cp index.html $DEPLOYPATH // Tried just one file to see if would work but it didn't.
Navigate to cPanel's Git Version Control interface (cPanel >> Home >> Files >> Git Version Control). Locate the desired repository in the list of repositories and click Manage. Click the Pull or Deploy tab. Click Update from Remote to pull changes from the remote repository.
cpanel. yml file determines how and where the changed files deploy. You must check a . cpanel. yml file in to the top-level directory for each cPanel-managed repository that you deploy.
So this is basically a bash script that CPanel runs when you update your repo stored on the server. the layout in your case should be:
Please remove all "# comments" if you are copying the example or it might not work
---
deployment:
tasks:
- export DEPLOYPATH=/home/<username>/public_html/<app_folder>
- /bin/cp <file_name> $DEPLOYPATH #Copy specific file to destination from root
- /bin/cp /<sub_folder>/<file_name> $DEPLOYPATH #copy specific file from source sub folder
- /bin cp * $DEPLOYPATH #copy all from root
- /bin cp /<sub_folder>/* $DEPLOYPATH #copy all from sub folder root
So the above should work for you.....but.....
If you are doing the whole root to destination then here is the one I use to just copy all.
---
deployment:
tasks:
- export DEPLOYPATH=/home/<user_name>/public_html #Add /<sub_folder> if required
- /bin/cp -r * $DEPLOYPATH
Remember to add /<sub_folder>
if you need an app folder other than public_html
You can get the file from my repo:
https://github.com/FrancoisGeyser/cPanel-yml.git
Hope that helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With