Esta configuración proporciona un entorno replicable que permite a los desarrolladores ejecutar la aplicación localmente, ejecutar tests unitarios, y validar nuevas características sin complicaciones.
A continuación daré una breve explicación de como esta estructurado nuestro entorno.
Básicamente el entorno está compuesto por 3 servicios gestionados en docker-compose
:
- app Contiene la aplicación y monta el codigo para evitar hacer build por cada cambio realizado.
- db_postgres (PostgresSQL) Base de datos usada tanto el desarrollo como para las pruebas.
- test enviroment Expone los resultados del reporte generado por los tests.
- Makefile Para simplificar el uso de los comandos
- Flask: Framework web para Python.
- PostgreSQL: Base de datos relacional.
- Docker Compose: Orquestación de servicios para desarrollo local.
Primero se ha de clonar el repositorio.
git clone https://github.com/ander-Sgr/devops-project.git
Para levantar el entorno de desarrollo y la base de datos.
make run
NOTE: El servicio de la base de datos tiene un healthechek, no tardará mas de 10s en estar en UP.
Levanta el entorno de pruebas.
make tests
Visualizar el reporte del coverage, te mostrará la URL.
make coverage
Lo que hará es borrarte los volumenes monstados que y la redes creadas por docker-compose.
make clean
Para contribuir en el proyecto nos baseremos en el flujo Gitflow
Por lo que usarmeos el modelo de ramas siguiente
main
: Rama principal, siempre estable.develop
: Rama de integración para nuevas funcionalidades.feature/<nombre>
Esta se crea desde develop y se fusiona en develop. Se usa para desarrollar nuevas características.release/<version>
Esta rama se prepara para hacer un despliegue a producción y se crea desde develop, y se fusiona tanto en develop como en mainhotfix<nombre>
Se usa para corregir errores críticos en producción. Se crea desde main y se fusiona tanto en main como en develop.