Inicializar un repositorio donde realizaremos el despligue mediantes ‘push’.
git init --bare /var/repos/repositorio.git
Crear el directorio donde se realiza el despligue de la aplicacción.
mkdir -p /var/www/app
Utilizar el hook ‘hooks/post-receive’
#!/bin/bash
# Directorio despliegue
DEPLOY_DIR="/var/www/app"
# Directorio repositorio
REPO_DIR="/var/repos/repositorio.git"
# Rama de producción
PROD_BRANCH="produccion"
while read oldrev newrev ref
do
echo "Recibiendo ref $ref..."
if [ "$ref" == "refs/heads/$PROD_BRANCH" ]; then
echo "Desplegando rama $PROD_BRANCH en $DEPLOY_DIR ..."
git --work-tree=$DEPLOY_DIR --git-dir=$REPO_DIR checkout -f $PROD_BRANCH
echo "Despliegue completado."
else
echo "No se realiza despligue sobre la rama $PROD_BRANCH."
fi
done
Es necesario dar permisos de ejecución al fichero ‘post-receive’
chmod ug+x hooks/post-receive
Pushear a la rama correspondiente
git push origin produccion
Si fuera necesario añadir el repositorio con un nombre
git remote add deploy [email protected]:/var/repos/repositorio.git