Integración Continua - EGC-Decide/locaste GitHub Wiki
Proceso
La integración se realiza con la ayuda de TravisCI. Esto nos permite saber si el código pasa los tests en cada rama de desarrollo para su posterior integración con las demás ramas.
Adicionalmente antes de realizar los test se realizará automáticamente un análisis de código estático en el que se lanzarán distintos “warnings” acerca del código, complejidad ciclomática, imports no usados, etc.
Los pasos serían los siguientes:
- Pasar los tests en local mediante el comando
python manage.py test
- Al hacer push a la rama principal de cada subsistema se pasarían los tests automáticamente en remoto en Travis y se podría ver el resultado junto al commit en GitHub.
- Se realiza un merge de la rama anterior a la rama 'dev' y se revisa si el resultado de la build de Travis es correcto.
- Cuando se considere que existe una mejora sustancial cualquier coordinador de un subsistema podría realizar un Pull Request (PR) de la rama 'dev' a 'master'. Después de pasar las pruebas en Travis del PR y siempre que todo funcione correctamente, el creador del PR finalmente lo aceptaría.
Si en cualquiera de los pasos anteriores hubiera algún error, habría que solucionarlo para poder continuar al siguiente.