Deploy files from a git repository

This role will localy clone any number of git repositories with any number of branches, then create an archive for each repositories/branches combinations.

Those archives will then be extracted to the remote server in the correct directory.

To make this work, you need to define an object with all the necessary variables, like this:

git_generic_deploy_files_list:
  - repository_url: 'https://scmlab.cosium.com/VirtualTryOn/CosiumTryOn_API_Booth.git'
    branch: 'opticworld'
    deploy_directory: '/var/www/opticworld.vto.cosium.io/'
  - repository_url: 'https://scmlab.cosium.com/VirtualTryOn/CosiumTryOn_API_Booth.git'
    branch: 'master'
    deploy_directory: '/dev/shm/test/'

Mandatory variable

Variable Description Example
repository_url repo url https://scmlab.cosium.com/VirtualTryOn/CosiumTryOn_API_Booth.git
branch branch to clone master
deploy_directory path to unpack archive /var/www/freescout

Optional variable

Variable for git_generic_deploy_files_list Description Default value
deploy_directory_owner Owner of deploy_directory path none, same as user executing
deploy_directory_group group owning of deploy_directory path none, same as user executing
deploy_directory_mode perms of deploy_directory path
owner owner of files inside the repo, same for all files same as user executing
group group owning files inside the repo, same for all files same as user executing
mode perms for files inside the repo perserve those from repo

The git_generic_deploy_copy variable is very simple and use the same parameters of module copy (https://docs.ansible.com/ansible/latest/modules/copy_module.html).

Example:

git_generic_deploy_copy:
  - dest: "/var/www/prerequisites.cosium.net/center_prerequisites/configuration.php"
    content: |
      <?php
      define('ACJS_URL', 'https://c1.cosium.biz/43ACJS17007');
      define('ACJS_USER', '{{ local_ACJS_USER }}');
      define('ACJS_PASSWORD', '{{ local_ACJS_PASSWORD }}');
      define('ACJS_SITE', 'm');