Configurar git para hacer deploys

Bueno este post es sobre configuración de nuestro servidor ya sea desarrollo, pruebas o producción para todos es lo mismo ya depende del ambiente en el que anden.

Paso 1:

Saber que carpetas son las de trabajo por ejemplo /var/www/elsitio o /home/user/myapp bueno no se como tengan configurado esto, solo identifiquen para que sepan si se esta haciendo el deploy.

Paso 2:

Crear una carpeta para nuestro repositorio git, entrar en ella, en este caso nuestra carpeta de trabajo sera /var/www/elsitio (se supone que tenemos montado un sitio con apache en esa carpeta)


mkdir -p /home/git/elsitio.git
cd /home/git/elsitio.git

Paso 3:

Crear un repositorio vacio dentro de la carpeta elsitio.git, este repositorio es el que cuando le hagan un push obtendra los archivos nuevos y luego los colocara en /var/www/elsitio


git init --bare

Paso 4:
Una vez creada el repositorio entramos en la carpeta hooks y creamos el archivo post-recieve, este hook, se ejecutara cuando el repositorio reciba un push, y automaticamente copiara hacia nuestra carpeta de trabajo.

cd hooks
vi post-recieve

Paso 5:
Añadir el siguiente contenido a nuestro archivo para que ejecute la instruccion, despues guardarlo y hacerlo ejecutable con chmod+x

#!/bin/sh
git --work-tree=/var/www/elsitio --git-dir=/home/git/elsitio.git checkout -f

Lo guardas y lo haces ejecutable

chmod +x post-receive

Y listo ya quedo configurado el servidor, ahora en nuestro repositorio local hacemos lo siguiente:


git remote add production ssh://usuario@dominio/home/git/elstio.git

Ya con eso queda listo, cuando vayas a enviar todo a produccion solo haces

git push production

Y solo se encargara, bueno te pedira la contraseña de ssh pero esa ya la debes tener.

Aca una referencia en la que me base para hacer este tutorial.
Si quieren hacerlo con Rails es algo parecido solo que usen capistrano que ya viene medio configurado.

GIT DEPLOYS

Artículos Relacionados