
El lanzamiento de PVS-Studio 7.04 coincidió con el lanzamiento del plugin Warnings Next Generation 6.0.0 para Jenkins. Justo en este lanzamiento, el plugin Warnings NG agregó soporte para el analizador estático PVS-Studio. Este plugin visualiza los datos sobre advertencias del compilador u otras herramientas de análisis en Jenkins. En este artículo se explicará en detalle cómo instalar y configurar este plugin para su uso con PVS-Studio, así como la mayoría de sus funcionalidades.
Instalación del Warning Next Generation Plugin en Jenkins
Por defecto, Jenkins se encuentra en la dirección . En la página principal de Jenkins, en la esquina superior izquierda, seleccionamos la opción «Administrar Jenkins»:

A continuación, seleccionamos la opción «Administrar Plugins», abrimos la pestaña «Disponibles»:

En la esquina superior derecha, en el campo de filtrado, introducimos «Warnings Next Generation»:

Encontramos el plugin en la lista, marcamos la casilla a la izquierda y hacemos clic en «Instalar sin reiniciar»:

Se abrirá la página de instalación de plugins. En ella veremos los resultados de la instalación del plugin:

Creación de una nueva tarea en Jenkins
Ahora vamos a crear una tarea con configuración libre. En la página principal de Jenkins, seleccionamos «Nuevo Elemento». Introducimos el nombre del proyecto (por ejemplo, WTM) y elegimos la opción «Proyecto Freestyle».

Hacemos clic en «Aceptar», después se abrirá la página de configuración de la tarea. En la parte inferior de esta página, en la sección «Acciones posteriores a la construcción», abrimos la lista «Agregar acción posterior a la construcción». En la lista elegimos «Registrar advertencias del compilador y resultados de análisis estático»:

En el menú desplegable del campo «Herramienta» seleccionamos «PVS-Studio», después de lo cual hacemos clic en el botón guardar. En la página de la tarea hacemos clic en «Construir ahora», para que se cree una carpeta en el espacio de trabajo en Jenkins para nuestra tarea:

Obtención de los resultados de la construcción del proyecto
Hoy, en las tendencias de Github, encontré el proyecto dotnetcore/WTM. Lo descargué de Github, lo coloqué en el directorio de construcción WTM en Jenkins y lo analicé en Visual Studio con la ayuda del analizador PVS-Studio. Una descripción detallada del uso de PVS-Studio en Visual Studio se presenta en un artículo homónimo: .
Ejecuté la construcción del proyecto en Jenkins un par de veces. Como resultado, en la parte superior derecha de la página de la tarea WTM en Jenkins apareció un gráfico, y a la izquierda apareció un elemento de menú Advertencias de PVS-Studio:

Al hacer clic en el gráfico o en este elemento de menú, se abre una página con la visualización del informe del analizador PVS-Studio a través del plugin Warnings Next Generation:

Página con los resultados
En la parte superior de la página hay dos gráficos circulares. A la derecha de los gráficos hay una ventana de gráficos. Abajo se encuentra una tabla.

En el gráfico circular de la izquierda se muestra la proporción de advertencias de diferentes niveles de peligrosidad, y en el de la derecha, la proporción de advertencias nuevas, no corregidas y corregidas. Hay tres gráficos. La selección del gráfico que se muestra se realiza mediante las flechas a la izquierda y a la derecha. Los primeros dos gráficos muestran la misma información que los diagramas, mientras que el tercero muestra el cambio en el número de advertencias.

Como puntos en los gráficos se pueden seleccionar ensamblajes o días.
También hay una opción para ampliar y reducir el rango de tiempo del gráfico para ver los datos durante un período específico:

Se pueden ocultar gráficos de ciertas métricas al hacer clic en la designación de la métrica en la leyenda del gráfico:

Gráfico después de ocultar la métrica 'Normal':

En la parte inferior hay una tabla que muestra los datos del informe del analizador. Al hacer clic en un sector del gráfico circular, se filtran los datos de la tabla:

La tabla tiene varias pestañas para filtrar datos. En este ejemplo, se puede filtrar por namespace, archivo, categoría (nombre de la advertencia). En la tabla, se puede seleccionar cuántas advertencias mostrar por página (10, 25, 50, 100):

Hay una opción para filtrar datos por la cadena ingresada en el campo 'Buscar'. Ejemplo de filtrado por la palabra 'Base':

En la pestaña 'Issues', al hacer clic en el signo más al principio de la fila de la tabla, se mostrará una descripción breve de la advertencia:

En la descripción breve hay un enlace al sitio con información detallada sobre esta advertencia.
Al hacer clic en los valores de las columnas 'Package', 'Category', 'Type', 'Severity', se filtran los datos de la tabla según el valor seleccionado. Filtrando por categoría:

En la columna 'Age' se muestra cuántos ensamblajes han sobrevivido a esta advertencia. Al hacer clic en el valor de la columna 'Age', se abrirá la página del ensamblaje en el que apareció esta advertencia por primera vez.
Al hacer clic en el valor de la columna 'File', se abrirá el código fuente del archivo en la línea con el código que provocó la advertencia. Si el archivo no está presente en el directorio del ensamblaje o ha sido movido después de crear el informe, no será posible abrir el código fuente del archivo.

Conclusión
Warnings Next Generation se ha convertido en una herramienta de visualización de datos muy conveniente en Jenkins. Esperamos que el soporte de PVS-Studio en este complemento ayude mucho a quienes ya utilizan PVS-Studio y también atraiga la atención al análisis estático de otros usuarios de Jenkins. Y si su elección de analizador estático es PVS-Studio, estaremos muy contentos. Les invitamos nuestra herramienta.
Si desea compartir este artículo con una audiencia de habla inglesa, le ruego que utilice el enlace a la traducción: Valery Komarov. .
Fuente: habr.com
