parent
1c2bdbacb1
commit
337977e868
|
@ -0,0 +1,73 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Text color variables
|
||||||
|
txtbld=$(tput bold) # Bold
|
||||||
|
bldred=${txtbld}$(tput setaf 1) # red
|
||||||
|
bldgre=${txtbld}$(tput setaf 2) # green
|
||||||
|
bldylw=${txtbld}$(tput setaf 3) # yellow
|
||||||
|
txtrst=$(tput sgr0) # Reset
|
||||||
|
err=${bldred}ERROR${txtrst}
|
||||||
|
info=${bldgre}INFO${txtrst}
|
||||||
|
warn=${bldylw}WARNING${txtrst}
|
||||||
|
|
||||||
|
usage()
|
||||||
|
{
|
||||||
|
cat << EOF
|
||||||
|
Generates a file which contains useful git informations
|
||||||
|
|
||||||
|
Usage : $(basename $0) [global|diff]
|
||||||
|
ex :
|
||||||
|
Generate git information
|
||||||
|
$(basename $0) global
|
||||||
|
Generate diff from latest tag
|
||||||
|
$(basename $0) diff
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $# != 1 ]; then
|
||||||
|
printf "\n$err : Needs 1 argument\n"
|
||||||
|
usage
|
||||||
|
exit 2
|
||||||
|
fi;
|
||||||
|
|
||||||
|
current_commit=$(git rev-parse HEAD)
|
||||||
|
latest_tag=$(git describe --abbrev=0 --tags)
|
||||||
|
latest_tag_commit=$(git show-ref -s ${latest_tag})
|
||||||
|
tags_list=$(git tag --points-at "${latest_tag}")
|
||||||
|
|
||||||
|
case ${1} in
|
||||||
|
"global")
|
||||||
|
cat<<EOF
|
||||||
|
deployment date="$(date '+%d-%m-%Y %Hh%M')"
|
||||||
|
deployment_timestamp=$(date '+%s')
|
||||||
|
user="$USER"
|
||||||
|
current commit (HEAD)="${current_commit}"
|
||||||
|
current_commit_timestamp=$(git log -1 --pretty=format:%ct)
|
||||||
|
latest tag(s) (current branch)="${tags_list}"
|
||||||
|
latest tag commit="${latest_tag_commit}"
|
||||||
|
current branch="$(git rev-parse --abbrev-ref HEAD)"
|
||||||
|
branches list="$(git describe --contains --all HEAD)"
|
||||||
|
git root directory="$(git rev-parse --show-toplevel)"
|
||||||
|
EOF
|
||||||
|
if ! git diff-index --quiet HEAD --; then
|
||||||
|
printf "unstaged changes=\"/etc/.git-ansible.diff\""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${current_commit} == ${latest_tag_commit} ]; then
|
||||||
|
printf "\ncurrent_commit_tag=\"${latest_tag}\""
|
||||||
|
else
|
||||||
|
printf "\nlast tag was "$(git describe --tags | awk -F- '{print $2}')" commits ago =\""
|
||||||
|
printf "$(git log --pretty=format:" %h - %s" ${latest_tag}..HEAD)\""
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
"diff")
|
||||||
|
git diff
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage
|
||||||
|
printf "$err: Unknown argument ${1}"
|
||||||
|
exit 1;
|
||||||
|
;;
|
||||||
|
esac
|
|
@ -0,0 +1,25 @@
|
||||||
|
---
|
||||||
|
# Deploy git infos
|
||||||
|
# ----------------
|
||||||
|
|
||||||
|
- name: 'GIT | generate git informations'
|
||||||
|
local_action: command {{ role_path }}/gen-gitinfos.sh global
|
||||||
|
register: gitinfo
|
||||||
|
always_run: yes
|
||||||
|
|
||||||
|
- name: 'GIT | copy ansible information'
|
||||||
|
template:
|
||||||
|
src: ansible_git.j2
|
||||||
|
dest: /etc/.ansible.ini
|
||||||
|
backup: yes
|
||||||
|
|
||||||
|
- name: 'GIT | generate diff file'
|
||||||
|
local_action: command {{ role_path }}/gen-gitinfos.sh diff
|
||||||
|
register: gitdiff
|
||||||
|
always_run: yes
|
||||||
|
|
||||||
|
- name: 'GIT | copy git diff file'
|
||||||
|
copy:
|
||||||
|
content: "{{ gitdiff.stdout }}"
|
||||||
|
dest: /etc/.git-ansible.diff
|
||||||
|
backup: yes
|
|
@ -1,4 +1,6 @@
|
||||||
---
|
---
|
||||||
|
- include: gitinfos.yml
|
||||||
|
|
||||||
- name: gather os specific variables
|
- name: gather os specific variables
|
||||||
include_vars: "{{ item }}"
|
include_vars: "{{ item }}"
|
||||||
with_first_found:
|
with_first_found:
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
; This file contains the information which identifies the deployment state relative to the git repo
|
||||||
|
[default]
|
||||||
|
{{ gitinfo.stdout }}
|
Loading…
Reference in New Issue