Publicar automáticamente los cambios SVN tras hecer commit (Post-Commit Hooks)

En ocasiones en preciso publicar inmediatamente los cambios realizados en las aplicaciones web, por lo que en lugar de copiar la última revisión del proyecto en SVN al servidor web es posible establecer un hook post-commit del SVN que publicará automáticamente dichos cambios en el momento que se produzcan (es decir, cuando se realice cualquier commit).

1. Lo primero será realizar un checkout del proyecto hacia el directorio destino del servidor web:

svn co PATH-SVN-REPO PATH-SITE-WWW

2. Después iremos al directorio hooks dentro del repositorio SVN edl proyecto y renombraremos el fichero de ejemplo “post-commit.tmpl” por “post-commit”;

cp post-commit.tmpl post-commit

3. Editamos el fichero post-commit:

nano post-commit

4. Y le añadimos el siguiente contenido:

#!/bin/sh
REPOS=”$1″
REV=”$2″
LOG=${REPOS}/postcommit.log
/usr/bin/svn update PATH-SITE-WWW 2>&1 | tee ${REPOS}/postcommit.log

5. Lo guardamos y lo convertimos en ejecutable:

chmod +x post-commit

6. Añadimos al usuario svn al grupo www-data (para que pueda ejecutar el hook)

usermod -a -G www-data svn

7. Modificamos el grupo del site:

chgrp -R www-data PATH-SITE-WWW

8. Y le damos permisos:

chmod -R 775 PATH-SITE-WWW

Tanto PATH-SVN-REPO como PATH-SITE-WWW son rutas físicas dentro del mismo servidor Linux.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s