Select Git revision
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%}