Versionado con Git Hooks

Soy malo recordando rutinas (entre otras cosas), lo descubrí hace años cuando administraba servidores de DNS. Cada vez que se modifica un registro en un servidor de DNS, es necesario incrementar el valor del serial. Bueno, periódicamente olvidaba este ultimo paso. Ahora, ya no se trata de servidores de DNS, si no plugins de WordPress o aplicaciones que utilicen la estructura Node.js (por ejemplo), en todos los casos es necesario actualizar en número de versión publicada. Por suerte entre todos los Git Hooks existe post-flow-release-start.

post-flow-release-start

Este hook se ejecuta justo después de terminar el comando git flow release start, el cual requiere un número de versión que podemos utilizar para actualizar nuestro código . El ejemplo que pego debajo es para actualizar la versión en una aplicaciones basada en Node.js, específicamente para actualizar el archivo package.json.

#!/usr/bin/env bash

# Runs at the end of git flow release start
#
# Positional arguments:
# $1 The version (including the version prefix)
# $2 The origin remote
# $3 The full branch name (including the release prefix)
# $4 The base from which this release is started
#
# The following variables are available as they are exported by git-flow:
#
# MASTER_BRANCH - The branch defined as Master
# DEVELOP_BRANCH - The branch defined as Develop

VERSION=$1
ORIGIN=$2
BRANCH=$3
BASE=$4

# Implement your script here.
json_tmp=$(/bin/mktemp)
jq -r .version=\"$VERSION\" package.json > $json_tmp
mv $json_tmp package.json