fps1001 / TFGII_FPisot

0 stars 0 forks source link

Integración de Sonar Cloud #54

Open fps1001 opened 2 weeks ago

fps1001 commented 2 weeks ago

Se integrará Sonar Cloud en el proyecto para realizar un análisis continuo de la calidad del código. Esta herramienta permitirá detectar problemas como errores, vulnerabilidades, código duplicado y posibles fallos de seguridad, brindando métricas clave para la mejora continua del código. Con Sonar Cloud, será más fácil identificar y gestionar la deuda técnica, mejorando la mantenibilidad y la calidad global del producto. Se valorará alguna alternativa si ésta no está disponible para dart en su versión libre.

fps1001 commented 1 week ago

image.png Creada cuenta y ligado el repositorio. Falta elegir la herramienta de análisis... Quizá algún apunte de DAS me vendría bien... @clopezno

clopezno commented 1 week ago

La opción que te aconsejo es Integrar sonarqube con github actions. Quizás te ayude esta documentación básica para comprender que son las actions de github https://docs.github.com/es/actions y esta para saber como integrar sonarqube https://github.com/marketplace/actions/official-sonarqube-scan.

Como no he revisado la calidad con desarrollos con Flutter y Dart he ojeado como tenía definida los ficheros .yml de actions de David https://github.com/davidmigloz/langchain_dart/actions/workflows/test.yaml. He visto que utiliza codeQL para analizar vulnerabilidades https://codeql.github.com/ y que tiene definido un workflow para la ejecución automática de pruebas.

fps1001 commented 1 week ago

image.png He creado los archivos de configuración, creado la clave pero no realiza el escaner.

fps1001 commented 1 week ago

No consigo que me genere el análisis SonarQube, he seguido los pasos, creado secreto y archivos yaml, pero no lo hace automáticamente y ahora en cada commit me indica un error. CodeQL no soporta Dart/Flutter quiza en el proyecto bees se usaba android nativo...

Consultado con David me indica también DCM: https://dcm.dev/features/

Voy a investigar DCM y cualquier ayuda con sonarqube es bien recibida.

clopezno commented 1 week ago

Investida tú DCM e intento sacar tiempo el lunes de la próxima semana para clonar tu repositorio e intentar lanzar sonarQube.

fps1001 commented 1 week ago

image.png Error de sonarqube relacionado con lenguaje c...

clopezno commented 5 days ago

He realizado el primer chequeo de calidad para ver si funcionaba con Dart. El informe esta público en https://sonarcloud.io/project/overview?id=clopezno_DartTestSonar-Dsonar.sources%3D.-Dsonar.host.url%3Dhttps%3A%2F%2Fsonarcloud.io

He dejado un vídeo explicativo. Falta configurar la integración con las actions de github https://sonarcloud.io/project/configuration/GitHubActions?id=clopezno_DartTestSonar-Dsonar.sources%3D.-Dsonar.host.url%3Dhttps%3A%2F%2Fsonarcloud.io

fps1001 commented 3 days ago

No accedo al vídeo mencionado @clopezno, ambas páginas me llevan al proyecto pero no encuentro ningún tutorial.

clopezno commented 2 days ago

Tienes razón. Siento el error. Prueba este enlace https://universidaddeburgos-my.sharepoint.com/:v:/g/personal/clopezno_ubu_es/EefzyWlF_dBAqsypYaPPXOkBZJMzoL8UBMT69_hmteh-Xw?e=YSrP30&nav=eyJyZWZlcnJhbEluZm8iOnsicmVmZXJyYWxBcHAiOiJTdHJlYW1XZWJBcHAiLCJyZWZlcnJhbFZpZXciOiJTaGFyZURpYWxvZy1MaW5rIiwicmVmZXJyYWxBcHBQbGF0Zm9ybSI6IldlYiIsInJlZmVycmFsTW9kZSI6InZpZXcifX0%3D

fps1001 commented 2 days ago

image.png conseguido con el mismo método que en el vídeo (gracias). Tengo un problema con algo relacionado a un compilador de c (no tengo ni idea de qué es), he ignorado estos archivos en el .bat: sonar-scanner.bat ^ -D"sonar.projectKey=fps1001_TFGII_FPisot" ^ -D"sonar.organization=fps" ^ -D"sonar.sources=." ^ -D"sonar.host.url=https://sonarcloud.io" ^ -D"sonar.c.file.suffixes=-" ^ -D"sonar.cpp.file.suffixes=-" ^ -D"sonar.objc.file.suffixes=-" Y se generó el informe. Por lo que ví en el informe de github es el mismo problema por el que no me está funcionando desde Github Actions. Además al arrancar VSCode me pide que elija sobre un tema similar... image.png Elimino todas las carpetas que no sean de la aplicación android: web, windows, ios (ésta es la del problema).

fps1001 commented 2 days ago

No consigo hacerlo automático. Lo dejo para el sprint review. image.png Me da un fallo con la versión java de la imagen que tiene docker, que no es compatible...

clopezno commented 1 day ago

He probado exitosamente la integración continua de calidad con actions y sonarqube con una copia de tu repositorio de Github. Este es el fichero de configuración que he utilizado https://github.com/clopezno/SonarFlutter/blob/main/.github/workflows/SonarCloud.yml. Recuerda actualizar el fichero sonar-project.properties del directorio raíz de tu repositorio.

imagen.png

Faltaría integrar con actions los test y si quieres la construcción de la aplicación he realizado parte una versión preliminar de esta automatización en https://github.com/clopezno/SonarFlutter/blob/main/.github/workflows/dart.yml

fps1001 commented 1 day ago

Integración exitosa. image.png No sé muy bien porque falla o qué representa la cobertura. Lo voy a investigar. Acerca de la construcción automática de la aplicación, creo que habría que adjuntar los archivos .env para que lo realizara, cuestión incompatible de seguridad. Hay que asegurar esta parte también. Preguntaré a David acerca de las API_Keys embebidas en las .apk

clopezno commented 1 day ago

El análisis de cobertura de pruebas implica tener test definidos para la aplicación y ejecutarlos

Your project will need to have tests in test/ and a dependency on

  # package:test for this step to succeed. Note that Flutter projects will
  # want to change this to 'flutter test'.
  #- name: Run tests
  #  run: dart test project-app/project_app/