Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Issues with the format of .cpanel.yml file when trying to deploy cpanel git repository to directory.

Tags:

git

linux

cpanel

  • I am using a cpanel web administration system.
  • With it i create a git repository.
  • I am able to push my local code to that git repository.

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.
like image 493
aviya.developer Avatar asked Oct 07 '18 13:10

aviya.developer


People also ask

How do I deploy a Git repository in cPanel?

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.

What is a cPanel Yml file?

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.


1 Answers

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
  • /bin/cp "copy command"
  • -r "recursive include sub folder / files"
  • '*' "all"

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.

like image 106
Francois Avatar answered Oct 14 '22 21:10

Francois