Skip to content
Snippets Groups Projects
Select Git revision
  • 2cfd9cfc4deb9a71b895da4e755f3234268a3e93
  • master default protected
2 results

gitlab.sls

Blame
  • gitlab.sls 1.56 KiB
    {% from "deploy/map.jinja" import deploy with context %}
    
    include:
      - deploy.user
    
    deploy_packages:
      pkg.installed:
        - order: 0
        - pkgs: [git]
    
    deploy_target_directory:
      file.directory:
        - name: {{ deploy.config.deploy_directory }}
        - user: deployer
        - group: deployer
        - mode: 770
        - require:
          - user: deployer
          - group: deployer
    
    {% for project_name, project_config in deploy.projects.items() if project_config.get('gitlab', False) %}
    {% set repo_config = project_config.gitlab %}
    
    deploy_{{ project_name }}_clone_git:
      git.latest:
        - name: {{ repo_config.url }}
        - rev: {{ repo_config.rev }}
        - user: deployer
        - force_fetch: true
        - force_reset: true  # ignore local repos changed!
        - target: {{ project_config.path }}
    
    deploy_{{ project_name }}_clone_directory_permissions:
      file.directory:
        - name: {{ project_config.path }}
        - user: deployer
        - group: {{ project_name }}
        {% if repo_config.get('keep_chmod_from_repo', False) %}
        {% else %}
        - dir_mode: 750
        - file_mode: 640
        {% endif %}
        - recurse:
          - user
          - group
          - mode
        - require:
            - git: deploy_{{ project_name }}_clone_git
            - sls: deploy.user
    
    {% if repo_config.get('after_clone_command', False) %}
    deploy_{{ project_name }}_run_after_clone_command:
      cmd.run:
        - name: {{ repo_config.after_clone_command }}
        - cwd: {{ deploy.config.deploy_directory }}
        - require:
          - git: deploy_{{ project_name }}_clone_git
          - file: deploy_{{ project_name }}_clone_directory_permissions
    {% endif %}
    
    {% endfor%}