Lamentablemente, GIT no dispone de un hook para dicha tarea, por lo que vamos a ver cómo crearlo de forma manual nosotros mismos.
Este script debemos crearlo en el directorio "hooks" de nuestro repositorio con el nombre
post-created-tag
El script hook sería el siguiente
#!/bin/bash CURRENT_TAGS_FILE="/home/user/git/mirepo.git/hooks/current.tags" NEW_TAGS_FILE="/home/user/git/mirepo.git/hooks/to.check.tags" TAG_MATCH_CODE=".+\.protag" rm ${NEW_TAGS_FILE} 2>/dev/null git tag > ${NEW_TAGS_FILE} CREATED_TAG=`diff ${CURRENT_TAGS_FILE} ${NEW_TAGS_FILE} | grep -E '>.+' | sed 's/> //'` if `echo ${CREATED_TAG} | grep -E "${TAG_MATCH_CODE}" 1>/dev/null 2>&1` then echo "CREATED NEW MATCHED TAG: ${CREATED_TAG}" else echo "ANY MATCHED TAG CREATED" fi git tag > ${CURRENT_TAGS_FILE} rm ${NEW_TAGS_FILE} 2>/dev/null
Veamos, pues, cómo ponemos a funcionar todo esto. Lo primero es ir al directorio de nuestro repositorio y, en el directorio hook, creamos el fichero que contendrá los tags actuales, necesario para poder comparar después sobre el commit
cd /home/user/git/mirepo.git/hooks/ git tag > current.tags
El siguiente paso será editar el fichero (o crearlo si no existe)
post-receive
con el contenido
#!/bin/bash # Este script comprueba si se han hecho cambios en un directorio concreto, # y en tal caso lanza la comprobacion del tag created sh /home/user/git/mirepo.git/hooks/post-created-tag
y, por último, damos los permisos necesarios de ejecución
chmod u+x /home/user/git/mirepo.git/hooks/post-created-tag
Como se puede observar, la implementación que hace el script cuando detecta que se ha creado un tag nuevo está abierta, por lo que será cosa vuestra.
En las primeras líneas del script podemos encontrar algunas constantes
CURRENT_TAGS_FILE="/home/user/git/mirepo.git/hooks/current.tags" NEW_TAGS_FILE="/home/user/git/mirepo.git/hooks/to.check.tags" TAG_MATCH_CODE=".+\.protag"
de las que podemos destacar la última, la cual nos indica qué match debe hacer el nuevo tag para disparar los procesos que necesitemos. Esto lo he puesto así ya que, en mi caso, el script hace un despliege en producción y no quiero que lo haga sobre cualquier tag, si no sobre el tag que contenga al final del nombre la palabra
.protag
No obstante, si queremos que se ejecute siempre que se cree un nuevo tag, tenga el nombre que tenga, bastará con poner una expresión regular como
.+
y con esto ya tenemos nuestra propia implementación del hook de creación de tag.
Ahora prueba nuestros servidores gratis durante 48 horas
Francisco Javier Lucas bleda
Borrar la MAC de una dirección IP
Ana Maria tuttolomondo
Solucionar el error de Outlook "Su servidor no admite ninguno de los métodos de autenticación admitidos por este cliente" en cPanel
Frankie
Suspender un dominio en Plesk
HyRo
Cómo buscar ficheros mayores de un tamaño en Linux con el comando FIND
Luis
Activa o desactiva una dirección IP
Efren
Bloquear IPs para que no puedan acceder a un dominio en cPanel
staff Unelink