Escritorio Proyecto SonarQube

Hace unos días vi un twit de Codefresh, donde incluso retuitee que la versión usada para su demostración era la de Pago SonarCloud y no SonarQube, por lo que retuitee que si se exponía la instalación gratuita de SonarQube tendría el mismo resultado.

Así que me dí a la tarea de integrar el escaneo de código de uno de los proyectos asignados para confirmar la integración sugerida.

El documento en inglés de Codefresh puedes encontrarlo en Continuous Code Analysis with SonarQube and Codefresh, lo revise y por supuesto que tiene algunos detalles por resolver, en este artículo describí que implemente SonarQube para escanear el código de los proyectos que me son asignados y que había implementado un Script en Bash para hacer el escaneo, algo manual por supuesto, por lo que hacer esto en el pipeline dejaría sin efecto a mi Bash Script, algo que ansiaba hacer en el corto plazo.

Por lo que describiré aquí cómo fue que lo implemente.

 

Creando el proyecto en SonarQube.

Si aún no has instalado SonarQube, te recuerdo que puedes hacerlo usando Docker, mas información en Install the Server.

  1. Para evitar “conflictos” y evitar “mirones” genere un nuevo Grupo y le asigne permisos únicamente para que el Administrador o Usuario indicado pueda ver este proyecto.
  2. Genere el proyecto siguiendo el asistente de SonarQube y le asigne un Token para que desde Codefresh pueda usarlo.
Creando Proyecto en Sonarqube

Creando Proyecto en Sonarqube

 

Proyecto Creado SonarQube

 

Integrando el Plugin al Pipeline del proyecto en Codefresh.

Este fue uno de los pasos de mayor atención, ya que mis pipelines toman las configuraciones de un repositorio adicional, por  lo que tuve que adicionar un Plugin solo para copiar el archivo sonar-project.properties en la raíz del proyecto.

Integración Plugin Pipeline Codefresh

Integración Plugin Pipeline Codefresh

 

La hora de la verdad, ejecutando el pipeline manualmente.

Aquí es donde veremos si realmente funciona la teoría, claro que la ejecución final tuvo como antecesores varias pruebas para darnos cuenta que debido a la configuración que tomamos por separado no obtenía la propiedad sonar.projectKey necesaria para identificar al proyecto en nuestro SonarQube.

En la imagen podemos ver la ejecución exitosa de nuestro pipeline, en el log del paso QUALITY podemos ver el ID de la Tarea (Task) la cual es AXY_dPYDfvCgCTUgh8X4 y debe coincidir con la tarea en el “fondo” (background) en nuestro escritorio, sección de tareas de SonarQube.

Ejecución Pipeline SonarQube Codefresh

Ejecución Pipeline SonarQube Codefresh

 

Comprando en la cola de SonarQube la tarea de escaneo.

Como lo anticipe en mi retuit, mencionando que usaban SonarCloud y que si exponían su instalación de SonarQube se podría hacer lo mismo que se indica en el Howto.

Así que vayamos a ver el Dashboard de SonarQube, he puesto en rojo el ID de la Tarea (Task) en la imagen para su rápida identificación.

Tareas en Background SonarQube

Tareas en Background SonarQube

Efectivamente podemos ver que la tarea del análisis lanzada desde Codefresh se esta ejecutando en mi instancia de SonarQube y al finalizar puedo revisar la calidad del código del proyecto.

Escritorio Proyecto SonarQube

Escritorio Proyecto SonarQube

Con esto comprobamos la integración del escaneo de código usando SonarQube lanzado desde un pipeline en Codefresh.

Si necesitas ayuda puedes contactarme en este enlace.

Tags

Comments are closed

Optimized with PageSpeed Ninja