Files
ansible-role-seriatim/tasks/source.yml

77 lines
1.9 KiB
YAML

---
- name: Create Seriatim source parent directory
ansible.builtin.file:
path: "{{ seriatim_source_dir | dirname }}"
state: directory
owner: root
group: root
mode: "0755"
- name: Check out selected Seriatim source
ansible.builtin.git:
repo: "{{ seriatim_repository_url }}"
dest: "{{ seriatim_source_dir }}"
version: "{{ seriatim_source_ref }}"
update: true
force: true
accept_hostkey: false
- name: Inspect Seriatim checkout cleanliness
ansible.builtin.command:
argv:
- "{{ seriatim_git_path_result.stdout }}"
- -C
- "{{ seriatim_source_dir }}"
- status
- --porcelain
- --untracked-files=all
- --ignored
register: seriatim_source_status
changed_when: false
- name: Reset tracked Seriatim source changes
ansible.builtin.command:
argv:
- "{{ seriatim_git_path_result.stdout }}"
- -C
- "{{ seriatim_source_dir }}"
- reset
- --hard
- HEAD
when: seriatim_source_status.stdout | length > 0
changed_when: true
- name: Remove untracked and ignored Seriatim source content
ansible.builtin.command:
argv:
- "{{ seriatim_git_path_result.stdout }}"
- -C
- "{{ seriatim_source_dir }}"
- clean
- -dffx
when: seriatim_source_status.stdout | length > 0
changed_when: true
- name: Enforce Seriatim source ownership
ansible.builtin.file:
path: "{{ seriatim_source_dir }}"
state: directory
owner: root
group: root
recurse: true
- name: Resolve selected Seriatim source commit
ansible.builtin.command:
argv:
- "{{ seriatim_git_path_result.stdout }}"
- -C
- "{{ seriatim_source_dir }}"
- rev-parse
- HEAD
register: seriatim_source_commit_result
changed_when: false
- name: Record selected Seriatim source commit
ansible.builtin.set_fact:
seriatim_source_commit: "{{ seriatim_source_commit_result.stdout }}"