Configuración de la integración continua con GitLab, Jenkins y SonarQube

Este tutorial trata sobre la integración continua entre GitLab, Jenkins y SonarQube. Al final de este tutorial, podrá ver los informes de calidad de los códigos del repositorio de GitLab en SonarQube utilizando Jenkins como integrador continuo y sonar-scanner como analizador de código.

Configuración de integración continua con GitLab, Jenkins y SonarQube

Antes de ver cómo configurar la integración continua (CI), primero veamos los componentes involucrados y qué roles juegan en nuestra configuración aquí.

GitLab

GitLab es una plataforma de alojamiento de código fuente abierto para colaboración y control de versiones. Se puede instalar en sus servidores para alojar sus códigos de forma privada. GitLab proporciona una funcionalidad de gestión de código fuente (SCM) similar a GitHub y BitBucket .

Jenkins

Jenkins es un servidor de integración continua de código abierto. Es una herramienta de automatización que se puede usar para probar y compilar sus códigos, e implementarlo en producción si la compilación tiene éxito.

Jenkins aquí se usa para extraer los códigos de GitLab (en tiempo real, cuando el código se inserta o fusiona), crea los códigos del proyecto y envía el resultado a SonarQube para su interpretación visual.

SonarQube

SonarQube es un servidor de inspección continua de código abierto. Es una herramienta utilizada como puerta de calidad para la revisión de código. Proporciona informes automáticos de análisis de códigos, detecta errores, vulnerabilidades de seguridad, códigos duplicados, comentarios, olores de código y muchos más para variedades de lenguajes de programación.

requisitos previos

Este tutorial asume que GitLab, Jenkins y SonarQube ya se han instalado en su sistema Linux. La instalación de estas herramientas no es nuestro enfoque aquí.

Ahora que conoce las herramientas involucradas y sus roles, veamos cómo configurar nuestra integración continua

Paso 1. Configuraciones en Sonarqube

Necesitamos token de autenticación del servidor de SonarQube, que luego pasamos a Jenkins. Este token da acceso a Jenkins, para impulsar las compilaciones de Jenkins en SonarQube para el análisis de código.

  • Ir Mi cuenta > Seguridad
  • En fichas bloque, ingrese cualquier texto para generar un token.
  • Conservar la copia del token

Aquí está la revisión de SonarQube generando token de usuario:

Generar token de autenticación del servidor en SonarQube

Ahora, crearemos un Proyecto donde se publiquen todos los informes de análisis de código.

  • Ir Administración > Proyectos > Gestión
  • Haga clic en Crear proyecto
  • Cree el proyecto con su Project_name y Project_key. Copie el nombre y la clave del proyecto. Pasaremos estas credenciales en la configuración de Jenkins más adelante.

Vista previa de la creación de un proyecto:

Creando un proyecto en SonarQube

Paso 2. Configuración en GitLab

También necesitamos los tokens de acceso del usuario de GitLab que luego pasamos a Jenkins. Esto se usa para autenticar la URL del repositorio del usuario de GitLab, de donde Jenkins extrae los códigos.

  • Ir Ajustes de usuario menú Configuración del formulario.
  • Ir Fichas de acceso
  • Cree un token de acceso personal agregando cualquier nombre único ( Nombre ) y la fecha de caducidad del token ( Caduca a las ). También establezca el Ámbitos a api- Acceso completo.

Vista previa de la generación de tokens de acceso de usuario:

Generar token de acceso de usuario en GitLab Generar token de acceso de usuario en GitLab

Paso 3. Configuración en Jenkins

Necesitamos configurar GitLab y SonarQube en el panel web de Jenkins. Para esto, necesitamos instalar algunos complementos necesarios.

  • Iniciar sesión en Jenkins
  • Ir Administrar Jenkins > Administrar complementos
  • En Disponible pestaña, busque GitLab y SonarQube e instale los siguientes complementos:
  • Complemento de enlace de GitLab
  • Complemento GitLab
  • Git
  • Escáner SonarQube para Jenkins

Necesitamos Escáner SonarQube para ser instalado en el “servidor Jenkins”, que en realidad inicia el análisis de código y publica los informes para proyectar en SonarQube.

Para instalar SonarQube Scanner, puede usar los siguientes comandos:

                      
                        $ wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
$ unzip sonar-scanner-cli-3.3.0.1492-linux.zip 
$ cd sonar-scanner-3.3.0.1492-linux $ pwd 
                      
                    

Copia la ubicación. Tendremos que agregar esta ubicación (como Carpeta de inicio de instalación del escáner SonarQube) en Configuración de Jenkins.

También configuraremos el archivo de propiedades del escáner de sonda al agregar el servidor de SonarQube:

                      
                        $ cd conf 
$ vi sonar-scanner.properties
                      
                    

Descomente “sonar.host.url” y agregue la URL de su servidor SonarQube

Configurar el servidor de SonarQube

Ahora configuraremos GitLab y SonarQube en Jenkins.

  • Ir Administrar Jenkins > Configurar sistema
  • En Servidores SonarQube pestaña, introduce la URL de tu servidor SonarQube y el Token de autenticación del servidor generado en SonarQube antes.

Vista previa de la adición de SonarQube en Jenkins:

Agregar SonarQube a Jenkins para la configuración de CI Agregando SonarQube a Jenkins

Ahora, vaya a la pestaña GitLab y agregue la URL de su servidor GitLab en URL del host de GitLab

En Cartas credenciales , necesitamos el token API de GitLab para acceder a GitLab. Haga clic en Agregar y seleccione Jenkins: Proveedor de credenciales de Jenkins

En Tipo Seleccione Token de la API de GitLab de la lista desplegable. Enter su API Token generado en GitLab antes. Agregue el token con una identificación única.

Además, asegúrese de tener la ubicación correcta de Jenkins en Ubicación de Jenkins pestaña.

Después de agregar GitLab y SonarQube con éxito, también debemos agregar las configuraciones de SonarQube Scanner.

  • Ir Administrar Jenkins > Configuración global de herramientas
  • En Escáner SonarQube pestaña, haga clic en Instalaciones de escáner SonarQube
  • desmarcar Instalar automáticamente y agregue su carpeta de inicio de instalación de SonarQube.
Configuración del escáner SonarQube en Jenkins La carpeta de inicio de mi escáner SonarQube era /opt/sonar-scanner

Paso 4: Agregar un proyecto a Jenkins para integración continua e inspección continua

Una vez que se hayan realizado todas las configuraciones, ahora crearemos un Proyecto en Jenkins.

Vaya al panel de Jenkins -> Nuevo artículo > Seleccionar Proyecto de estilo libre . Crear proyecto con un nombre de proyecto único

Creando un nuevo proyecto en Jenkins Creando un nuevo proyecto en Jenkins

En el panel de Jenkins, seleccione su proyecto y haga clic en Configurar .

Desplácese hasta General pestaña, seleccione la conexión de GitLab de la lista desplegable. Verá el nombre de conexión de GitLab que hemos agregado antes, en Administrar Jenkins > Configurar sistema .

Desplácese hasta Gestión de código fuente pestaña, seleccione Git . Agregue la URL http de su proyecto GitLab (esto usa la misma sintaxis que el comando git clone). Puede obtener la URL en su página de proyecto de GitLab.

Obtener la URL de GitLab Obtener la URL de GitLab

Especifique también la autenticación para la URL de GitLab.

  • En Credenciales haga clic en Agregar y seleccione Jenkins: Proveedor de credenciales de Jenkins
  • en Tipo Seleccione Nombre de usuario con contraseña de la lista desplegable.
  • Enter su nombre de usuario y contraseña de inicio de sesión de GitLab.
  • Agregue la clave con una identificación única.
Autenticación para GitLab en Jenkins Autenticación para GitLab en Jenkins

También debe especificar las ramas para construir. Si se deja en blanco, se examinarán todas las ramas en busca de cambios y se construirán.

La adición de sucursales se puede hacer como: */

Ahora, desplácese hasta Activadores de compilación seleccione la casilla de verificación URL del webhook de GitLab.

  • Copie la URL del webhook de GitLab. Necesitamos configurar webhook en GitLab nuevamente, usando esta url.
  • Haga clic en Avanzado
  • Generar como Ficha secreta . Copie este token, esto se usa para configurar webhook en GitLab más adelante.

Vista previa de la creación de activadores de compilación

Generación de token secreto para GitLab en Jenkins Generación de token secreto
Token secreto para GitLab en Jenkins Ficha secreta

Por último, desplácese hasta la Construir pestaña, en Ejecutar el escáner SonarQube , agregue los parámetros de configuración de SonarQube que utiliza el escáner SonarQube. Puede incluir SonarQube ProjectName, ProjectKey, la ubicación de instalación del escáner SonarQube, etc.

Escáner SonarQube en Jenkins Escáner SonarQube en Jenkins

Después de realizar todas las configuraciones, debemos configurar el webhook en GitLab.

Webhook es un método para enviar los datos a otras aplicaciones en tiempo real.
Usamos webhook en GitLab para automatizar la entrega de códigos de GitLab durante eventos de inserción o eventos de combinación, según lo especificado.

  • Inicie sesión en su cuenta Gilab.
  • ir Tus Proyectos en Proyecto menú.
  • Selecciona tu Proyecto
  • ir Ajustes > integraciones
  • Agregue la URL del webhook y el token secreto que copiamos de la pestaña Jenkins Build Triggers.
  • Seleccione los activadores que desee y anule la selección Verificación SSL .
  • Crear webhook

Vista previa de la creación del webhook de GitLab:

creando un webhook de GitLab creando un webhook de GitLab
anular la selección de Verificación SSL

Probar el webhook con Empujar eventos .

Prueba de los eventos push Prueba de los eventos push

Una vez que la prueba es exitosa, Project comienza a construirse en Jenkins. Inicie sesión en Jenkins y verifique las compilaciones del proyecto. Puedes ver los códigos de GitLab en Jenkins espacios de trabajo .

Compruebe las compilaciones del proyecto en Jenkins Compruebe las compilaciones del proyecto en Jenkins

Además, puedes ver los informes de código del proyecto en SonarQube.

Informe de código de proyecto en SonarQube Informe de código de proyecto en SonarQube

¡Eso es todo! Hemos integrado con éxito GitLab, Jenkins y SonarQube. Ahora, para cada evento de inserción o combinación de eventos en nuestro repositorio de GitLab, Jenkins compilará el proyecto y mostrará la calidad del código en SonarQube.

Espero que este tutorial te haya resultado fácil de seguir. Por favor, hágamelo saber si tiene alguna pregunta o sugerencia.

Autor : Rishi Raj Gautam es un amante de Linux y un activista del código abierto.

Related Posts