Transcript
Page 1: Ramas con git: Aplicación a un proyecto en producción

RAMAS CON GITAPLICACIÓN A UN PROYECTO EN PRODUCCIÓN

Iván López @ilopmarhttp://kaleidos.net/4B0082

Page 2: Ramas con git: Aplicación a un proyecto en producción

PROBLEMA A RESOLVERCompatibilizar desarrollos de nueva funcionalidad conversiones estables en producción y corrección de bugs

Page 3: Ramas con git: Aplicación a un proyecto en producción

¿CÓMO LO HACEMOS?Definiendo una forma estandar de trabajar. Basado en

Usando las ventajas de GIT

Política de BRANCHES

Versionado

Control estricto de los pasos a producción

http://nvie.com/posts/a-successful-git-branching-model/

Page 4: Ramas con git: Aplicación a un proyecto en producción

VERSIONADOEstandar X.YY.ZZX -> Mayor versión

YY -> Minor versión

ZZ -> Patch

Page 5: Ramas con git: Aplicación a un proyecto en producción

PASOS A PRODUCCIÓN

Page 6: Ramas con git: Aplicación a un proyecto en producción
Page 7: Ramas con git: Aplicación a un proyecto en producción

TIPOS DE RAMASInfinitas: develop, masterTemporales: features, releases, hotfix

Page 8: Ramas con git: Aplicación a un proyecto en producción

INFINITAS

Page 9: Ramas con git: Aplicación a un proyecto en producción

DEVELOPRama de desarrollo

Cualquier funcionalidad nueva parte de esta rama y semergea de nuevo aquí

Jenkins configurado para ejecutarse contra ella

Page 10: Ramas con git: Aplicación a un proyecto en producción

MASTERRama de producción

Nunca se commitea en ella

Jenkins configurado para ejecutarse contra ella, aunquenunca debería fallar ;-)

Page 11: Ramas con git: Aplicación a un proyecto en producción

FRONTENDAl principio del proyecto se maquetaba en ella

Deprecada

Page 12: Ramas con git: Aplicación a un proyecto en producción

TEMPORALES

Page 13: Ramas con git: Aplicación a un proyecto en producción

FEATUREPara desarrollar nuevas User Stories

Se crea a partir de develop y se mergea de nuevo a develop

Page 14: Ramas con git: Aplicación a un proyecto en producción

DEMO

Page 15: Ramas con git: Aplicación a un proyecto en producción

RELEASECongelación y estabilización de versión candidata a subir aproducción

Se debe aumentar la versión (minor) y crear tagSe crea a partir de develop y se mergea de nuevo a master ydevelopCualquier bug que haya que corregir para estabilizar laversión se commiteará directamente contra esta rama

Está prohibido mergear cambios contra esta rama ytampoco añadir nueva funcionalidad

Page 16: Ramas con git: Aplicación a un proyecto en producción

DEMO

Page 17: Ramas con git: Aplicación a un proyecto en producción

HOTFIXCorrección de bugs de producción que no pueden esperar alciclo de subidas normales

Se debe aumentar la versión (patch) y crear tagSe crea a partir de master y se mergea de nuevo a master ydevelop

Page 18: Ramas con git: Aplicación a un proyecto en producción

DEMO

Page 19: Ramas con git: Aplicación a un proyecto en producción

PROBLEMASFuncionalidad no-plugable ni ordenable

Árbol de commits "sucio" por los merges de develop a lasramas de features

No hacemos rebase (aunque en su momento lo hicimos) y lovolveremos a hacer

Page 20: Ramas con git: Aplicación a un proyecto en producción
Page 21: Ramas con git: Aplicación a un proyecto en producción

GRACIASIVÁN LÓPEZ@ILOPMAR


Top Related