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.
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.