Tutorial SonarQube

Pre-requisitos

 

  1. Un repositorio en gitlab.labcomp.cl.
  2. Código fuente en alguno de los siguientes lenguajes de programación.
    • Java
    • JavaScript
    • TypeScript
    • Kotlin
    • Ruby
    • Go
    • Scala
    • Python
    • PHP
    • HTML

 

  1. Activar Shared Runners en los ajustes de CI/CD para nuestro repositorio de código:

 

Para ejecutar un análisis utilizando SonarQube, debemos ejecutar el componente SonarScanner con nuestro código fuente. Con el fin de automatizar este proceso es que vamos a utilizar el servicio de CI/CD de nuestra instancia de GitLab. Para esto, necesitamos un servidor que pueda ejecutar nuestros procesos de CI/CD y podemos utilizar la infraestructura que LabComp provee habilitando los Shared Runners en la sección Settings, luego CI/CD, lo siguiente es expandir la sección Runners para finalmente seleccionar el botón Enable Shared Runners. Una vez realizada esta configuración, estaremos en condiciones de ejecutar nuestros procesos de integración continua y análisis de código en este repositorio.

  1. Ingresar a SonarQube

Para generar y visualizar los resultados de los análisis realizados a nuestro repositorio, debemos ingresar por primera vez al servicio SonarQube del LabComp. Para esto, ingresamos a https://sonar.labcomp.cl y seleccionamos la opción Log in with GitLab.

Esta operación, nos va a redireccionar hacia la instancia GitLab del LabComp, donde podemos iniciar sesión con nuestras credenciales del Departamento de Informática.

 

Una vez que ingresamos a la plataforma, debemos generar nuestro token secreto para ejecutar el análisis de un repositorio.

 

  1. Generación de token

 

Para la generación de un token en SonarQube, debemos acceder a la imagen de perfil en la esquina superior derecha y luego My Account.

Luego ir a la pestaña Security, donde solo les mostrará un cuadro con la información de sus tokens, ahí deben ponerle un nombre (cualquiera) y presionar Generate.

 

Habiendo generado el token, les aparecerá por única vez la información del token, por lo que deben copiarlo para luego ser agregado como variable dentro de su repositorio en Gitlab, esto es estrictamente necesario para realizar los análisis de código en los repositorios.

  1. Configurar token en repositorio GitLab:

 

Una vez generado el token, debemos agregarlo como variable de entorno en nuestro repositorio GitLab, al igual que la URL del servidor que genera los reportes de los análisis.

Para esto, en nuestro repositorio vamos a Settings, luego CI/CD y expandimos la sección Variables. En esta sección, debemos agregar la siguiente configuración.

  • Variable SONAR_HOST_URL. Se debe asignar el valor https://sonar.labcomp.cl/
  • Variable SONAR_TOKEN. Se debe asignar el token personal del usuario dueño del repositorio, según los pasos de la sección anterior.

 

Con esta configuración, ya estamos preparados para el último paso, configurar un proceso automatizado en GitLab para ejecutar el análisis del código en nuestro repositorio.

 

  1. Configurar Pipeline de CI/CD para SonarQube:

 

En GitLab, los procesos de integración continua se declaran o definen a través del archivo .gitlab-ci.yml. En este tutorial, solo cubriremos la configuración básica para utilizar la instancia SonarQube del laboratorio, si quieres saber más sobre que es posible con Gitlab Pipelines, puedes leer la siguiente documentación. https://docs.gitlab.com/ee/ci/quick_start/ 

 

Creamos un nuevo archivo en nuestro repositorio a través del botón (+) y luego New file

Luego, fijamos el nombre del archivo con .gitlab-ci.yml y en su contenido, lo siguiente:

include: 'https://gitlab.labcomp.cl/labcomp/labcomp-ci-templates/-/raw/master/SonarQube/sonarqube.yml'

Presionamos, Commit changes y listo, hemos configurado nuestro repositorio para ser escaneado por SonarQube.

 

  1. Verificar resultados:

 

Una vez realizado el commit, podemos acceder a la sección CI/CD y luego a Pipelines en nuestro repositorio. Donde podremos observar, que se ha ejecutado un nuevo proceso.

Al hacer clic en el Status o Id de Pipeline, podemos acceder a las etapas de la ejecución. En la cual deberíamos observar una etapa llamada sonarqube-check.

Al presionar en el nombre de la etapa, podemos ver sus registros donde lograremos apreciar el resultado final del análisis.

Podemos notar, que en los registros existe una URL, al acceder a ella podremos obtener un reporte sobre nuestro código.

Finalmente, al ingresar a la sección Home de SonarQube, podremos ver que nuestro proyecto ha sido creado en SonarQube de forma privada, esta es la configuración por defecto para todos los proyectos nuevos analizados.

 

Anexo

 

La template utilizada para el análisis en SonarQube no puede ser utilizada para lenguajes basados en la JVM (Java, Kotlin, Scala) ni para C# o .NET Framework. Estamos trabajando para soportar estos lenguajes en el corto plazo.

 

Cualquier problema, bug, consulta o sugerencia es recibida en la casilla coordinacion@labcomp.cl

Publicado por Emilio Cornejo

Deja una respuesta