Skip to content

Integración continua

jreyesr edited this page Mar 29, 2021 · 2 revisions

La aplicación usa Github Actions para ejecutar algunas operaciones (principalmente pruebas) en cada commit. Véase https://github.com/IS-AgroSmart/AgroSmart-Web/runs/1912241627 para un ejemplo de una ejecución.

Ejemplo de un commit con tests fallidos

En cada commit, Github Actions instancia una máquina virtual en la cual:

  1. Se clona el repositorio.
  2. Se instala Python y Node.js
  3. Se instalan los requerimientos del backend (en requirements.txt) y del frontend (en frontend/package.json).
  4. Se ejecutan los tests del backend con Pytest.
  5. Se genera un reporte de cobertura de tests del backend y se almacena para ser enviado a SonarCloud.
  6. Se ejecutan los tests del frontend con Jest.
  7. Se genera un reporte de cobertura de tests del frontend y se almacena para ser enviado a SonarCloud.
  8. Se ejecuta SonarScan, que analiza el código de Python, recopila los dos reportes de cobertura y envía estos resultados a SonarCloud.
  9. Si alguno de estos pasos falla, Github muestra una X roja en la descripción del commit.

Lista de commits con estado exitoso/fallido

Si el commit es parte de un PR, se muestra un mensaje de error o éxito junto al botón que aprueba el merge. De esta forma, es más fácil corregir errores en los tests antes de hacer el merge. Además, un bot de SonarCloud deja un comentario en el PR indicando el resultado del análisis del código.

Página de un PR con comentarios de SonarCloud