{% 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%}