Supongamos un escenario: Después de confirmar el código en GitHub. Quiero seguir la calidad de mi código, conocer errores, vulnerabilidades, olores de código, etc. (análisis de código estático) para mi código antes de compilar mi código automáticamente con Jenkins y quiero que esta actividad se realice cada vez que confirmo código.
En este escenario para la Inspección Continua y la Integración Continua del código. Seguiremos las mejores prácticas utilizando la integración GitHub-Jenkins-SonarQube para este escenario.
Flujo : Tan pronto como el desarrollador confirme el código en GitHub, Jenkins buscará/extraerá el código del repositorio y realizará un análisis de código estático con la ayuda del Escáner Sonar y enviará el informe de análisis al servidor SonarQube, luego construirá automáticamente el código del proyecto.
Requisito previo :
- Jenkins está configurado con GitHub con algún disparador de compilación (en mi caso, su SCM de encuesta) si esto no se hace, siga este tutorial— https://medium.com/@amitvermaa93/jenkins-github-with-java-maven-project-c17cdba7062
- SonarQube se está ejecutando y tiene la configuración del escáner de Sonar en el sistema. Si no, siga el tutorial- https://medium.com/@amitvermaa93/sonarqube-setup-windows-e6a6c01be025
Paso 1. Abra el servidor SonarQube: Vaya a Administración > haga clic en Seguridad > Usuarios > Haga clic en Tokens (imagen 1)> Generar token con algún nombre > Copie el token (imagen 2), se utilizará en Jenkins para la autenticación Sonar.
Paso 2. Configurar SonarQube con Jenkins: Vaya a Administrar Jenkins > Configurar sistema > Sección de servidor SonarQube > Agregar SonarQube > Nombrarlo, proporcionar la Url del servidor como http: / / < IP>:< puerto> > y el token de autenticación copiado del servidor SonarQube > Aplicar y Guardar
Paso 3. Instale el complemento SonarQube en Jenkins. Vaya a Administrar Jenkins > Administrar complementos > Disponible > Buscar Escáner SonarQube> Instalar.
Descargar SonarScanner si usted no tiene https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
Configurar Sonar Escáner en Jenkins : Vaya a Mange Jenkins > Configuración global de herramientas > Desplácese para Escáner SonarQube > Agregar escáner de sonar > nómbrelo, desmarque si ya tiene sonar, de lo contrario, se descargará automáticamente para usted y se realizará la configuración de su escáner de sonar (en mi caso, ya lo tengo) > proporcionar ruta a casa del corredor de sonar como se muestra en la imagen de abajo
Paso 4. Crear un trabajo-Nuevo Elemento > Nombre y seleccione un tipo de proyecto (en mi caso, estoy seleccionando proyecto Maven, también puede optar por freestyle)
Paso 5. Configure Git en la sección SCM y use * * * * * para Sondear SCM en la sección Desencadenador de compilación. En Build sección de medio Ambiente añadir pre-buid paso > seleccione Ejecutar SonarQube Escáner
Paso 6. Crear un .archivo de propiedades en cualquier ubicación y proporcionar ruta de acceso en la tarea como se muestra a continuación (lo he creado en la carpeta Jenkins workspace). Este archivo de propiedades será específico del proyecto. Contiene ciertas propiedades de sonar, como qué carpeta escanear, qué carpeta excluir en el escaneo, cuál es la clave del proyecto y muchas más desde las que puede verla https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
Escáner de sonar interno.las propiedades escriben debajo del código –
sonar.projectKey = github-jenkins-sonar
sonar.fuente=./src
Para mantenerlo simple, he utilizado solo dos propiedades (como las anteriores), sonar.La propiedad projectKey creará un proyecto dentro de su servidor SonarQube con el mismo nombre si el proyecto no existe, le agregará análisis, sonar.sources define qué carpeta escanear. Puede proporcionar una ruta relativa desde el espacio de trabajo de Jenkins o una ruta real a la carpeta que desea escanear.
Desde que lo he usado ./ src (usar / para la ruta de Windows) significa que actualmente estoy en mi espacio de trabajo, es decir, en C:\Users\Amit Verma\.jenkins\workspace\Jenkins-GitHub-SonarQube ubicación y desde aquí proporciono la ruta a la carpeta (src) que quiero escanear.
Paso 7. Construye el trabajo. Después de una compilación exitosa, si puede ver los registros de compilación, le mostrará los archivos y la carpeta que ha escaneado y, después de escanearlos, ha publicado el informe de análisis en el servidor SonarQube que ha integrado.
Paso 8. Desde el panel de trabajo, haga clic en el icono de sonar o vaya al servidor Sonar, haga clic en Proyectos (en el encabezado) verá un nuevo proyecto con la misma clave de proyecto que ha dado en sonar-scanner.archivo de propiedades. Ahora usted puede ir dentro de su proyecto y analizar el informe