====== Realizar Análisis en SonarQube (Windows) ====== ===== Información del servidor SonarQube ===== * **Url Servidor SonarQube** = http://192.168.175.232:9013/ * **El usuario es** = admin * **Password** = Sicof82021# ==== Anydesk ==== * **La AnyDesk para conectarse al equipo es** : 827138011 * **Contraseña** : Medellin1. ==== información adicional ==== * El servidor está instalado en el disco **c:/** junto con **sonarScanner** aunque todo se debe hacer desde el servidor local. * Se accede por el **Anydesk** y todo se hace por allá. * Antes de hacer el análisis se debe descargar los repositorios y actualizarlo con su última versión confirmada que se vaya a analizar en el servidor *En este momento el análisis se debe hacer de forma local. ===== Pasos para realizar un análisis ===== * **PASO #1** ⇾ verificar que el código fuente debe estar actualizado en la última versiones confirmada nos dirigimos al proyecto y presionamos clic derecho **“tortoiseSVN > Revert”.** {{:ada:howto:sicoferp:factory:sourcecodeanalysis:actualizar_repo.png?400|}} * **PASO #2** ⇾ Luego le damos clic derecho y seleccionamos la opción **"SVN Update".** {{:ada:howto:sicoferp:factory:sourcecodeanalysis:update_repo.png?400|}} * **PASO #3** ⇾ ingresamos ala página principal de sonarQube que es donde estan todos los proyectos creados y ejecutados, ubicamos el proyecto a analizar y presionamos el botón "**Configure analysis**" o simplemente le damos clic al nombre del proyecto creado. {{:ada:howto:sicoferp:factory:sourcecodeanalysis:proyecto_vacio.png?400|}} * **PASO #4** ⇾ en este punto el proyecto está generado y listo para integrarse. **1.** **Esto es un ejemplo de las integraciones disponible **: * //con Jenkins// * //con GitHub Actions// * //con GitLab CL// * //con Azure Pipelines// * //entre otros// **2.** **Manera local**: * Locaty **3.** **en este caso necesitamos generar el proyecto de manera manual, ya que no contamos en estos momentos con un svn.** {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:repository_integration.png?400|}} ===== Token ===== * **PASO #5** ⇾ nos preguntará si nuestro proyecto va a generar un **Token** o usaremos uno ya existente. ==== Generate a Token ==== * Si no contamos con un token podemos generar uno nuevo seleccionando el Checkbox **"Genérate a token"** el cual se debe generar con el mismo nombre del componente o proyecto y lo generamos presionando clic en el botón **"Genérate".** **¡Recomendación!** //Es recomendado que todo token generado tengan el mismo nombre que tiene el proyecto que se va a analizar.// ==== Use Existing Token ==== *Pero si seleccionamos el Checkbox **"Use existing token"** ingresamos o pegamos el token y continuamos con el siguiente proceso. {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:generate_token_locally.png?400|}} * **PASO #6** ⇾ Ya que no contamos con un token en este ejemplo nos debe generar un token en el cual nosotros podremos utilizarlo para ejecutar un análisis de nuestros proyectos. **1.** Nos mostrará el token que debe utilizar nuestro proyecto, copiamos y guardamos en un lugar seguro nuestro token y presionamos el botón **"Continúe."** **2.** si por algún motivo perdemos o se nos olvidó copiar el token en administración encontramos todos los **Token** Generados y en esta sección podremos recuperar el token. {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:provide_token.png?400|}} * **PASO #7** ⇾ Cuando se genera el token y presionamos **"continúe"** nos mostrara una serie de opciones que se puede generar el proyecto. ==== ¿Qué opción describe mejor su construcción? ==== Ejemplo: - Maven - Gradle - .NET - Other(fot JS, TS, Go, Python, PHP, ...) En lo que es Migración se está empleando **"Maven"**, entonces él nos generará una estructura que nos permitirá invocar el sonar. {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:maven.png?400|}} ===== Estructura Maven ===== Maven nos generará una estructura que nos permitirá ejecutar nuestros análisis desde la consola de comandos a continuación se mostrara un ejemplo de lo que debería generar la estructura Maven: ==== Estructura Generada ==== mvnw clean verify sonar:sonar -Dsonar.projectKey=SecurityServerADA - Dsonar.host.url=http://192.168.175.235.232:9010 -Dsonar.login=6fcce31b1e404ae4477c1b9ebfddff2f ==== Lo que se debe de hacer ==== mvnw clean package - Dskiptests -Dsonar.projectKey=ConfigServerADA \ -Dsonar.host.url=http://localhost:9010 \ -Dsonar.login=6fcce31b1e404ae4477c1b9ebfddff2f * **¡Recordatorio!** Se hace separado porque cuando le decimos al Maven **"Verify"** él nos genera unas configuraciones internas del proyecto que no estaba funcionando porque había códigos que tenían problemas. *primero se **//compila//** y luego se **//invoca el sonar//**. ===== Compilación ===== * //**¡Advertencia!** Ojo no se puede cerrar la terminal donde arrancamos el sonar ni apagar el equipo.// * **PASO #8** -> Nos ubicamos en la carpeta de archivos donde está el proyecto, seleccionamos la ruta y la reemplazamos por el comando **"cmd"** por último le damos enter para que se nos abra la consola de comandos con la ruta de nuestro proyecto. {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:cmd_route.png?400|}} * Una vez se abra la consola pegamos el comando **"mvnw clean package - Dskiptests"** para ejecutar Maven y genere el artefacto, es decir, él **".jar".** * Ya que el servidor está instalado en Windows No tendrá problemas solo copiar y pegar ya en Linux es otro proceso. {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:compila_consola.png?400|}} ==== Definición del comando ==== 1. **clean package:** Este comando lo que hace es que limpia el proyecto y lo empaqueta de nuevo con esto genera él **".jar"** o el **".war"** que uno le especifiqué ala aplicación. El package nos permitirá compilar la aplicación por eso se reemplaza el **"verify"** por **"package".** 2. **Dskiptests:** Con este comando queremos decir que no haga el set de pruebas unitarias. ===== Invocación de sonar ===== * **PASO #8** -> Me ubico en la consola en donde ejecute la compilacion del proyecto y pegamos el comando **"-Dsonar.projectKey=ConfigServerADA -Dsonar.host.url=http://localhost:9010 -Dsonar.login=6fcce31b1e404ae4477c1b9ebfddff2f"** y damos enter para que se genere el análisis. * Si el servidor no tiene restricciones podemos hacer análisis desde nuestra propia máquina, si nos genera algún problema toca hacerlo local desde la **anydesk.** {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:inicio_analisis.png?400|}} * **PASO #9** ⇾ En este punto ya se debe estar generando el análisis de todo el código que tenga nuestro proyecto. Cuando el **"Scanner"** manda las matrices al sonar, sonar detecta de forma automática el análisis y lo redirecciona a los **"overview"** para visualizar el análisis generado. * una vez se termina la ejecución nos mostrará a detalle en la barra de notificaciones de **"overview"** los posibles problemas identificados en general del proyecto ejecutado. {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:analisis_terminado.png?400|}} ==== Análisis terminado ==== * En este punto el proyecto está analizado lo único que faltaría es identificar los análisis realizados. {{:ada:howto:sicoferp:factory:sourcecodeanalyzer:analisis.png?400|}} [[ada:howto:sicoferp:factory:sourcecodeanalyzer|←Volver atras]]