ramas con git: aplicación a un proyecto en producción
DESCRIPTION
Charla en la que cuento cómo estamos utilizando la potencia de las ramas de Git para el desarrollo de una aplicación que ya está en producción. Dicha aplicación se está desarrollando con metodologías ágiles y cada semana se sube nueva funcionalidad a producción. Es necesario compaginar los desarrollos de nuevas funcionalidades con la corrección de bugs y con una política estricta de ramas con Git podemos hacerlo :-) Código fuente de las slides (creadas con reveal.js) disponible en: https://github.com/lmivan/slides-ramas-gitTRANSCRIPT
![Page 1: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/3.jpg)
¿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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/5.jpg)
PASOS A PRODUCCIÓN
![Page 6: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/6.jpg)
![Page 7: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/7.jpg)
TIPOS DE RAMASInfinitas: develop, masterTemporales: features, releases, hotfix
![Page 8: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/8.jpg)
INFINITAS
![Page 9: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/11.jpg)
FRONTENDAl principio del proyecto se maquetaba en ella
Deprecada
![Page 12: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/12.jpg)
TEMPORALES
![Page 13: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/14.jpg)
DEMO
![Page 15: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/16.jpg)
DEMO
![Page 17: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/18.jpg)
DEMO
![Page 19: Ramas con git: Aplicación a un proyecto en producción](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.co/reader030/viewer/2022020306/5563d654d8b42a740a8b458b/html5/thumbnails/20.jpg)