tobiko/roles/tobiko-deploy/tasks/deploy-dir.yaml

75 lines
1.8 KiB
YAML

---
- name: "set deploy source variables"
set_fact:
'{{ item.0 }}': '{{ item.1 }}'
loop: '{{ deploy.1 | dictsort }}'
loop_control:
label: '{{ item.0 }}'
- name: "clean directory '{{ dest_dir }}'"
file:
path: "{{ dest_dir | realpath }}"
state: absent
when:
- clean_dir | bool
- name: "setup directory '{{ dest_dir }}'"
file:
path: "{{ dest_dir | realpath }}"
state: directory
owner: '{{ dest_user | default(omit) }}'
group: '{{ dest_group | default(omit) }}'
mode: '{{ dest_mode | default(omit) }}'
recurse: yes
become: '{{ test_become | bool }}'
register: create_dest_dir
- debug: var=create_dest_dir
- name: "override git_version and src_dir because git_refspec is '{{ git_refspec }}'"
set_fact:
git_version: 'FETCH_HEAD'
src_dir: ''
when: '(git_refspec | length) > 0'
- name: "checkout files from '{{ git_repo }}[{{ git_refspec | default(git_version) }}]' to '{{ dest_dir }}'"
git:
dest: '{{ dest_dir }}'
repo: '{{ git_repo }}'
refspec: '{{ git_refspec | default(omit) }}'
version: '{{ git_version }}'
remote: '{{ git_remote | default(omit) }}'
force: yes
register: checkout_files
when: '((src_dir | length) == 0)'
- name: "copy '{{ src_dir }}' to '{{ dest_dir }}'"
synchronize:
src: "{{ src_dir | realpath }}/."
dest: "{{ dest_dir | realpath }}"
use_ssh_args: yes
recursive: yes
delete: "{{ clean_dir | bool }}"
rsync_opts:
- '--exclude-from={{ src_dir | realpath }}/.gitignore'
register: copy_src_dir
when: '(src_dir | length) > 0'
- name: "get last change details for '{{ dest_dir }}'" # noqa 303
command:
chdir: "{{ dest_dir }}"
cmd: git log -n 1
register: get_git_log
- name: "show last change details"
debug: var=get_git_log.stdout_lines