Configuración de Jenkins Pipeline con SonarQube y la integración de GitLab

Jenkins Pipeline es un conjunto de funciones de Jenkin. Es una de las varias formas de definir algunos pasos de Jenkins o una combinación de trabajos utilizando código y automatizar el proceso de implementación de software.

Si aún no ha configurado Jenkins, diríjase a nuestra guía de instalación de Jenkins para obtener instrucciones. La canalización utiliza un lenguaje específico de dominio (DSL) con dos sintaxis diferentes:

  • Canalización declarativa
  • Canalización con guión

En este tutorial, vamos a configurar la canalización declarativa con integración de sonda y GitLab.

Índice

Configuración de Jenkins Pipeline con SonarQube y la integración de GitLab

1. Requisitos previos

Instalación del complemento Pipeline

Si hubiera seleccionado la opción instalar complementos sugeridos cuando configuró Jenkins, debería haber instalado automáticamente todos los complementos necesarios. Si no es así, no se preocupe, puede instalar los complementos ahora.

Inicie Jenkins y vaya a Administrar Jenkins -> Administrar complementos -> Disponible

Si no puede encontrar el complemento Pipeline en el Disponible sección, consulte la instalado pestaña.

Complemento de canalización
Complemento de canalización

Instalación de Sonar Scanner

Inicie sesión en el servidor de Jenkins primero. Aquí, voy a descargar el escáner de sonda a la carpeta “/ opt”.

cd /opt

Descarga usando wget.

wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.2.0.1873-linux.zip

si wget El comando no está disponible, puede instalarlo usando los siguientes comandos:

Para Ubuntu / Debian:

apt-get install wget -y

Para Centos / Redhat:

yum install wget -y

De vuelta a Sonar, es hora de descomprimir el archivo Sonar descargado.

unzip sonar-scanner-cli-4.2.0.1873-linux.zip

Instale descomprimir si obtiene el comando no encuentra un error.

Para Ubuntu / Debian:

apt-get install unzip -y

para Centos / Redhat:

yum install unzip -y

Cambiar el nombre del paquete de la sonda.

 mv sonar-scanner-4.2.0.1873-linux sonar-scanner

Cambiar el nombre del escáner de sonda
Cambiar el nombre del escáner de sonda

Vaya al directorio de la sonda.

cd sonar-scanner

Consiga el camino.

pwd

Ruta del escáner de sonda
Ruta del escáner de sonda

Copiar la ruta del escáner de sonda:

/opt/sonar-scanner

Instalación del complemento Sonar

De la cabeza de Jenkin a Administrar Jenkins -> Administrar complementos -> Disponible

Buscar Sonar y seleccione Escáner SonarQube y haga clic en Instalar sin reiniciar.

Entonces Jenkins debería instalar el complemento correspondiente.

Complemento de escáner SonarQube
Complemento de escáner SonarQube

Instalación del complemento SonarQube
Instalación del complemento SonarQube

Seleccione Reinicie Jenkins cuando se complete la instalación. Jenkins debería reiniciarse.

Reiniciando
Reiniciando

Configuración de complementos de Sonar

Ir a Administrar Jenkins -> Configuración global de herramientas.

Configuraciones globales de herramientas
Configuraciones globales de herramientas

Encontrar Escáner SonarQube y haga clic en Agregar escáner SonarQube.

Deseleccionar instalar automáticamente.

Asigne cualquier nombre y pegue la ruta del escáner de sonda copiada a SONAR_RUNNER_HOME.

Configuración del escáner SonarQube
Configuración del escáner SonarQube

Luego guarde las configuraciones.

Configurar los ajustes del servidor Sonarqube

Obtenga el token de SonarQube del servidor de SonarQube.

Inicie sesión en el servidor SonarQube. Siga nuestra guía de instalación del servidor SonarQube para instalar Sonarqube Server.

Ir a Administración -> Seguridad -> usuarios.

Servidor SonarQube

Haga clic en Tokens.

Tokens
Tokens

Dar cualquier nombre y hacer clic en Generar token.

Crear token
Crear token

Copiar Token generado.

Token generado
Token generado

Ahora vaya a Jenkins Server.

Hacer clic Credenciales -> Sistema -> Credenciales globales -> Agregar credenciales.

Agregar credenciales globales
Agregar credenciales globales

Seleccione Texto secreto. Pegue el token de SonarQube copiado en Secret y dé cualquier nombre a la identificación y descripción.

Credenciales de SonarQube
Credenciales de SonarQube

Agregar el servidor SonarQube a Jenkins

Ir a Administrar Jenkins -> Configurar sistema.

Encontrar Servidores SonarQube y haga clic en Agregar SonarQube.

Detalles del servidor SonarQube
Detalles del servidor SonarQube

Seleccione Habilitar al inyectar el servidor SonarQube, dé cualquier nombre y agregue la URL del servidor sonarQube.

Seleccione token de autenticación en el menú desplegable. El token que agregamos anteriormente debería aparecer aquí.

Añadiendo el sonar-project.properties archivo a la raíz del repositorio

Aquí está nuestro archivo:

# Required metadata
sonar.projectKey=fosslinux-nodejs
sonar.projectName=fosslinux-nodejs

# Comma-separated paths to directories with sources (required)
sonar.sources=./

# Language
sonar.language=js
sonar.profile=node
# Encoding of sources files
sonar.sourceEncoding=UTF-8

Finalmente, haga clic en ahorrar.

Integrando el servidor GitLab con Jenkins

Siga nuestra guía de Gitlab para instalar y configurar GitLab.

Ir a Credenciales -> Sistema -> Credenciales globales -> Agregar credenciales.

Seleccione un nombre de usuario con contraseña. Agregue las credenciales de inicio de sesión de GitLab y haga clic en OK.

Credenciales de Gitlab
Credenciales de Gitlab

Inicie sesión en el servidor Jenkins e instale git.

Para Ubuntu / Debian:

apt-get install git -y

Para CentOS / Redhat:

yum install git -y

Aquí vamos a trabajar con la aplicación NodeJS, así que la instalaremos primero.

Instalación del complemento NodeJS

Ir a Administrar Jenkins -> administrador de complementos -> disponible.

Busque NodeJS.

Complemento NodeJS
Complemento NodeJS

Luego seleccione el complemento y instalar sin reiniciar.

Instalación del complemento
Instalación del complemento

Haga clic en Reinicie Jenkins cuando la instalación esté completa y no se estén ejecutando trabajos. y Jenkins debería reiniciarse automáticamente.

Configuración del complemento NodeJS

Haga clic en Administrar Jenkins> Configuración global de herramientas -> NodeJS

Configuración de NodeJS
Configuración de NodeJS

Dar cualquier nombre. Aquí hemos seleccionado instalar automáticamente y NodeJS 10.

Guarde las configuraciones.

Crear una canalización declarativa

Vaya al panel de Jenkins, haga clic en Nuevo Artículo. Luego ingrese un nombre de elemento y seleccione el proyecto 'Pipeline'. Hacer clic OK.

Crear canalización
Crear una canalización

Seleccione Tubería Texto

Seleccionar secuencia de comandos de canalización
Seleccionar secuencia de comandos de canalización

Aquí está el script de canalización simple para git clone, control de calidad de SonarQube y NodeJS.

pipeline {
         agent any
         tools {nodejs "fosslinuxnode"}

    stages {
        stage("Code Checkout") {
            steps {
                git branch: 'development',
                credentialsId: 'fosslinuxgitlablogin',
                url: 'https://git.fosslinux.com/demo/fosslinux-demo.git'
                  }
              }
         stage('Code Quality') {
                   steps {
                       script {
                          def scannerHome = tool 'fosslinxsonar';
                          withSonarQubeEnv("fosslinxSonarqubeserver") {
                          sh "${tool("fosslinxsonar")}/bin/sonar-scanner"
                                       }
                               }
                           }
                        }

         stage("Install Dependencies") {
                                  steps {
                                        sh "npm install"

                                       }
                                }

         stage("unit Test") {
                            steps {
                                sh "npm test"

                              }
                        }
             }
     }


Agregue el script de canalización anterior y guárdelo.

Script de canalización
Script de canalización

Conceptos de canalización

a) Pipeline: este es un bloque definido por el usuario que contiene todos los procesos, como compilación, implementación, etc.

b) Agente: la sección del agente especifica dónde se ejecutará todo el Pipeline, o una etapa específica, en el entorno de Jenkins, dependiendo de dónde se coloque la sección del agente.

c) Cualquiera: esta opción ejecuta la canalización / etapa en cualquier agente disponible.

d) Etapa: un bloque de etapa contiene una serie de pasos en una tubería. Es decir, la clonación, compilación, implementación, etc. procesan una etapa.

e) Pasos: se puede agregar una serie de pasos a un bloque de escenario. Simplemente, esta es una sola tarea que ejecuta un proceso específico. Ahora haga clic en construir.

Construye el trabajo
Construye el trabajo

La canalización debería comenzar a funcionar.

Ejecución de tubería
Ejecución de tubería

Aquí hay una tubería completa:

Canalización completada
Canalización completada

Se trata de instalar y configurar Jenkins Pipeline.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir