Deploys y hooks de GIT
Publicado en 30 agosto, 2016
- Se encuentran en /home/webs/home.alsur.es/html/pan/git
- Ruta tipo para añadir hook a un repositorio: http://gitl.alsur.es:8102/gis/golfinspain/hooks
- Dependiendo del repositorio se usará como dominio del hook uno u otro.
- Hay que incluir una configuración del repositorio en /home/webs/home.alsur.es/html/pan/git/hook_c.php
REPOSITORIOS
golfinspain
- URL del hook: http://home.alsur.es/pan/git/hook.php
- Usa el script ./hook_gis.php.
- Sincroniza la copia en vhome del branch del que se esté haciendo el commit, si es MASTER, LOCAL o SMARTY-TPL.
- Si encuentra la cadena [DEPLOY] en cualquier punto de alguno de los últimos commits ejecuta el script ../sync_gis.sh (un nivel por encima de /git) y ejecuta el sh de m16 /usr/local/bin/sync/gis-home2box.sh para sincronizar el branch de master en producción ignorando ciertos archivos (especial cuidado a los que empiecen por _).
crm-ese
- URL del hook: http://home.alsur.es/pan/git/hook.php
- Actualiza /home/webs/crm.elsurexiste.com/www en cada commit de MASTER.
6mu_luis
- URL del hook: http://home.alsur.es/pan/git/hook.php
- Usa el script ./hook_luis.php
- Si encuentra la cadena [produccion] en alguno de los ultimos commit ejecuta el comando en m16: /usr/local/bin/sync/wp-home2box-all.sh luis, que actualiza la copia de producción.
exiscontacts
- URL del hook: http://home64.alsur.es/pan/git/hook.php (home64)
- Busca en la ultima tanda de commits las cadenas [DEPLOY], [PUBLISH], [DOCS], [DEPLOY+PUBLISH] ó [STATIC]. Si lo tiene, actualiza la copia local de /var/www/playbooks y /var/www/Workspace/exiscontacts. Posteriormente ejecuta el playbook de Ansible correspondiente.
existravel
- URL del hook: http://home64.alsur.es/pan/git/hook.php (home64)
- Busca en la ultima tanda de commits la cadena [DEPLOY]. Si lo tiene, actualiza la copia local de /var/www/playbooks y /var/www/Workspace/existravel. Posteriormente ejecuta el playbook de Ansible correspondiente.
scrap
- URL del hook: http://home64.alsur.es/pan/git/hook.php (home64)
- Busca en la ultima tanda de commits la cadena [DEPLOY]. Si lo tiene, ejecuta «fab deploy» dentro del proyecto. Mediante bash se comprueba si hay algún error para mandar una alerta por email a sistemas@alsur.es.
web-testing
- URL del hook: http://mon.alsur.local:88/pan/git/hook.php (mon)
- Busca en la ultima tanda de commits la cadena [DEPLOY]. Si lo tiene, ejecuta «fab deploy» dentro del proyecto. Mediante bash se comprueba si hay algún error para mandar una alerta por email a sistemas@alsur.es.
ANSIBLE
[DEPLOY]
- Clonando el repositorio
- Backup de la BD
- Borrar de requirements MySQL-Python (da problemas)
- Borrar de requirements Djalsur-Meta si viene la variable force_update_djalsurmeta
- Instalar los requirements desde el freeze.
- Actualizar virtualenv de Djalsur-Meta
- Hacer collectstatic
- Ejecutar migraciones
- Ejecutar hook Deploy success, que lo hace es crear un archivo de texto con la fecha de este deploy.
- Recargar Apache
- Reiniciar Celery mediante Supervisor si está definida la variable supervisor_celery
- En caso de error envía mensaje a py@alsur.es. En caso de acierto solo al email del usuario que ha hecho el commit.
[PUBLISH]
- Backup del virtualenv
- Rsync del virtualenv de local a producción
- Backup del proyecto
- Rsync del proyecto de local a producción
- Dump de la BD
- Ejecutando migraciones
- Backup de estáticos
- Rsync de estáticos
- Recargar Apache
- Reiniciar Celery mediante Supervisor si está definida la variable supervisor_celery
- Envía un email informado del éxito o del error en el proceso de publish.
- Envía otro email en caso de error en el envío del email que informa de error. Esta vez sin información (?)
- Si falla: borra virtualenv, estáticos y proyecto y restaura los originales. Envía un mail informando si se ha podido restaurar todo o no.
[STATIC]
- Se hace desde local
- Clona el repositorio
- Hace collectstatic
- Sincroniza estáticos en la copia de producción.
- Envía email.
[DOCS]
- Genera la documentación mediante el playbook «generate_modules».
- Sincroniza la copia local.
…… EN CONSTRUCCIÓN ……

¿Algo que comentar?
Lo siento, debes estar conectado para publicar un comentario.