Skip to content

atxpaul/python-app-pipeline-example-advanced

Repository files navigation

Python App Pipeline Example (Advanced)

Python Version Build Status License

Este repositorio es un ejemplo práctico y avanzado de cómo configurar un ecosistema profesional de CI/CD (Integración y Despliegue Continuos) para aplicaciones Python. Incluye validaciones automatizadas, pruebas unitarias, análisis de calidad de código y empaquetado en contenedores Docker.


📁 Estructura del repositorio

Archivo / Directorio Descripción
.github/workflows/ Automatización de pipelines con GitHub Actions
app.py Punto de entrada y lógica principal de la aplicación
test_app.py Pruebas unitarias usando pytest
run_linter.sh Script para análisis estático y calidad de código
Dockerfile Definición de la imagen Docker
requirements.txt Dependencias necesarias en producción
requirements-dev.txt Dependencias de desarrollo, testing y linting

🛠️ Configuración y uso local

1. Preparar el entorno

Se recomienda utilizar un entorno virtual para evitar conflictos de dependencias.

Clonar el repositorio:

git clone https://github.com/atxpaul/python-app-pipeline-example-advanced.git
cd python-app-pipeline-example-advanced

Crear y activar el entorno virtual:

python -m venv venv
source venv/bin/activate        # Linux / macOS
.\venv\Scripts\activate      # Windows

Instalar dependencias:

pip install -r requirements.txt
pip install -r requirements-dev.txt

2. Ejecutar la aplicación

python app.py

🧪 Calidad de código y testing

El proyecto está orientado a mantener estándares de calidad altos desde el inicio.

Pruebas unitarias

Ejecutar tests con pytest:

pytest test_app.py

Análisis estático (linting)

Ejecutar el script de linting:

bash run_linter.sh

🐳 Contenedores con Docker

La aplicación puede empaquetarse y ejecutarse de forma consistente mediante Docker.

Construir la imagen:

docker build -t python-app-advanced .

Ejecutar el contenedor:

docker run --rm python-app-advanced

⚙️ Pipeline de GitHub Actions

El workflow de GitHub Actions se ejecuta automáticamente en cada push y pull_request y cubre los siguientes pasos:

  1. Setup del entorno Python
  2. Instalación de dependencias
  3. Análisis de calidad de código (linting)
  4. Ejecución de pruebas unitarias
  5. Validación de que el proyecto está listo para un despliegue seguro

Este enfoque asegura que cualquier cambio en el repositorio pasa por las mismas validaciones que en un entorno profesional.


📜 Licencia

Este proyecto se distribuye bajo licencia MIT.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published