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 ……

 

 


Sin respuestas to "Deploys y hooks de GIT"


    ¿Algo que comentar?