Jérémy Lecour
2ed77c60f0
replace « x | changed » by « x is changed » add explicit « bool » filter use « length » filter instead of string comparison
65 lines
1.5 KiB
YAML
65 lines
1.5 KiB
YAML
---
|
|
|
|
- name: "Remount /usr if needed"
|
|
include_role:
|
|
name: remount-usr
|
|
when: git_folder is match('/usr/.*')
|
|
|
|
|
|
- name: "is {{ git_folder }} clean?"
|
|
command: git status --porcelain
|
|
args:
|
|
chdir: "{{ git_folder }}"
|
|
changed_when: False
|
|
register: git_status
|
|
when: not ansible_check_mode
|
|
ignore_errors: yes
|
|
tags:
|
|
- etc-git
|
|
- commit
|
|
|
|
- debug:
|
|
var: git_status
|
|
verbosity: 3
|
|
tags:
|
|
- etc-git
|
|
- commit
|
|
|
|
- name: fetch current Git user.email
|
|
git_config:
|
|
name: user.email
|
|
repo: "{{ git_folder }}"
|
|
register: git_config_user_email
|
|
ignore_errors: yes
|
|
tags:
|
|
- etc-git
|
|
- commit
|
|
|
|
- name: "set commit author"
|
|
set_fact:
|
|
commit_author: '{% if ansible_env.SUDO_USER is not defined %}root{% else %}{{ ansible_env.SUDO_USER }}{% endif %}'
|
|
commit_email: '{% if git_config_user_email.config_value is not defined or not git_config_user_email.config_value %}root@localhost{% else %}{{ git_config_user_email.config_value }}{% endif %}' # noqa 204
|
|
tags:
|
|
- etc-git
|
|
- commit
|
|
|
|
- name: "{{ git_folder }} modifications are committed"
|
|
shell: "git add -A . && git commit -m \"{{ commit_message | mandatory }}\" --author \"{{ commit_author | mandatory }} <{{ commit_email | mandatory }}>\""
|
|
args:
|
|
chdir: "{{ git_folder }}"
|
|
register: commit_end_run
|
|
when:
|
|
- not ansible_check_mode
|
|
- git_status.stdout | length > 0
|
|
ignore_errors: yes
|
|
tags:
|
|
- etc-git
|
|
- commit
|
|
|
|
- debug:
|
|
var: commit_end_run
|
|
verbosity: 4
|
|
tags:
|
|
- etc-git
|
|
- commit
|