find value in all git tags using git-find-value
index | about | archive | charlas | docs | links
dot
|
git
|
img
|
plt
|
tty
|
uml
deploy fallido
Hoy falló un deploy, de esos que hay que hacer por las noches y que
obvio, al fallar hay que ver de corregirlo o deshacer todo aunque en
este caso no basta con presionar CTRL-Z
, es un poquito más complejo!
te juro que es la primera vez que me pasa
Cuando miro los logs buscando el error, detecto algo que nunca antes
sucedió en las pruebas de este release, rarísimo, al investigar un
poco más doy con el error, por algún motivo el job_template de AWX
clonó la versión v0.4.0
de un repo en lugar de la 0.7.2
WTF!
no sos vos, soy yo
Yo recordaba que la variable global para el entorno productivo estaba
definida como master
y NO podía fallar, debía clonar la última
versión estable, pero realizando un diff
veo que la variable
freeipa_sssd_tools_git_version
no estaba definida en PRD y sin
embargo si estaba globalmente con el valor v0.4.0
Pero si la última vez, deployamos master
(en ese momento v0.6.1
),
entonces qué sucedió?
git-find-value
al rescate!
Recordé que hace un tiempo hice el script git-find-value
que permite
buscar un valor en un archivo de un repo git
y mostrar qué valor
tenía en cada tag
, en este caso fue claro, no hubo duda alguna,
globalmente en el inventario nunca estuvo definido como master
:(
# git-find-value freeipa_sssd_tools_git_version group_vars/all.yml v0.7.1 freeipa_sssd_tools_git_version: v0.3.0 v0.7.2 freeipa_sssd_tools_git_version: v0.3.0 v0.7.3 freeipa_sssd_tools_git_version: v0.3.0 v0.7.4 freeipa_sssd_tools_git_version: v0.4.0 v0.7.5 freeipa_sssd_tools_git_version: v0.4.0 v0.7.6 freeipa_sssd_tools_git_version: v0.4.0 v0.7.7 freeipa_sssd_tools_git_version: v0.4.0
Y en PRD si estuvo como master
, pero en los tags v0.7.6
y
v0.7.7
, y justamente hoy estaba estrenando tag v0.7.8
# git-find-value freeipa_sssd_tools_git_version group_vars/prd.yml v0.7.6 freeipa_sssd_tools_git_version: master v0.7.7 freeipa_sssd_tools_git_version: master
Un simple git diff
entre 2 tags y pude ver dónde perdí algunas
variables, las pasé por alto, porque el enfoque estaba en otro cambio
más trascendental.
Utilidades siempre a mano
Deploy ExitOSi
Para resolver éste error y otros menores, tuve que generar varios
releases de varios repos y esto lo pude resolver rápidamente gracias
a otros scripts de Ansible Tools
3 y GitLab Bash
Utils
4 para obtener finalmente un deploy como
estaba planeado, sin errores y garantizando que todos los cambios estén
versionados!
Posts relacionados…
ChangeLog
2023-03-07 23:39
agregar find value in all git tags usinggit-find-value