Picture 12

Релиз PVS-Studio 7.04 совпал c релизом плагина Warnings Next Generation 6.0.0 для Jenkins. Как раз в этом релизе Warnings NG Plugin добавил поддержку статического анализатора PVS-Studio. Этот плагин визуализирует данные о предупреждениях компилятора или других инструментов анализа в Jenkins. В этой статье будет подробно рассказано как установить и настроить данный плагин для использования с PVS-Studio, а также описано большинство его возможностей.


Установка Warning Next Generation Plugin в Jenkins


По умолчанию Jenkins находится по адресу http://localhost:8080. На главной странице Jenkins слева вверху выбираем пункт «Manage Jenkins»:

Picture 1


Далее выбираем пункт «Manage Plugins», открываем закладку «Available»:

Picture 8


В правом верхнем углу в поле фильтра вводим «Warnings Next Generation»:

Picture 3


Находим плагин в списке, ставим слева галочку и жмем «Install without restart»:

Picture 14


Откроется страница установки плагинов. На ней мы увидим результаты установки плагина:

Picture 5


Создание новой задачи в Jenkins


Теперь создадим задачу со свободной конфигурацией. На главной странице Jenkins выберем «New Item». Введем имя проекта (например, WTM) и выберем пункт «Freestyle project».

Picture 6


Нажмем «Ок», после чего откроется страница настройки задачи. Внизу этой страницы в пункте «Post-build Actions» открываем список «Add post-build action». В списке выбираем «Record compiler warnings and static analysis results»:

Picture 7


В выпадающем списке поля «Tool» выбираем «PVS-Studio», после этого жмем кнопку сохранить. На странице задачи жмем «Build Now», чтобы создалась папка в workspace в Jenkins для нашей задачи:

Picture 18


Получение результатов сборки проекта


Сегодня в трендах Github мне попался проект dotnetcore/WTM. Я загрузил его с Github, закинул в сборочную директорию WTM в Jenkins и проанализировал в Visual Studio при помощи анализатора PVS-Studio. Подробное описание использования PVS-Studio в Visual Studio представлено в одноименной статье: PVS-Studio для Visual Studio.

Запустил сборку проекта в Jenkins пару раз. В результате справа вверху на странице задачи WTM в Jenkins появился график, а слева появился пункт меню PVS-Studio Warnings:

Picture 2


При нажатии на график или этот пункт меню открывается страница с визуализацией отчета анализатора PVS-Studio плагином Warnings Next Generation:

Picture 9


Страница с результатами


На странице сверху расположены две круговые диаграммы. Справа от диаграмм расположено окно графиков. Внизу расположилась таблица.

Picture 10


На левой круговой диаграмме отображается соотношение предупреждений разного уровня опасности, на правой – соотношение новых, не исправленных и исправленных предупреждений. Имеется три графика. Выбор отображаемого графика происходит при помощи стрелок слева и справа. Первые два графика отображают ту же информацию, что и диаграммы, а третий — изменение количества предупреждений.

Picture 26


В качестве точек графиков можно выбрать сборки или дни.

Также имеется возможность сужать и расширять временной диапазон графика, чтобы увидеть данные за определенный промежуток:

Picture 27


Можно скрывать графики определенных метрик по нажатию на обозначение метрики в легенде графика:

Picture 28


График после сокрытия метрики «Normal»:

Picture 29


Внизу расположена таблица, отображающая данные отчета анализатора. При нажатии на сектор круговой диаграммы происходит фильтрация таблицы:

Picture 11


В таблице имеется несколько закладок для фильтрации данных. В данном примере доступна фильтрация по namespace, файлу, категории (имя предупреждения). В таблице можно выбрать, какое количество предупреждений отображать на одну страницу (10, 25, 50, 100):

Picture 32


Имеется возможность фильтрации данных по строке, введенной в поле «Search». Пример фильтрации по слову «Base»:

Picture 33


На закладке «Issues» при нажатии на плюсик в начале строки таблицы отобразится краткое описание предупреждения:

Picture 34


В кратком описании содержится ссылка на сайт с подробной информацией по данному предупреждению.

При нажатии на значения в столбцах «Package», «Category», «Type», «Severity» происходит фильтрация данных таблицы по выбранному значению. Фильтрация по категории:

Picture 36


В столбце «Age» отображается сколько сборок пережило данное предупреждение. При нажатии на значение в столбце «Age» будет открыта страница сборки, в которой впервые появилось это предупреждение.

При нажатии на значение в столбце «File» будет открыт исходный код файла на строке с кодом, вызвавшим предупреждение. Если файл отсутствует в сборочной директории или был перемещен после создания отчета, открытие исходного кода файла окажется невозможным.

Picture 37


Заключение


Warnings Next Generation оказался очень удобным инструментом визуализации данных в Jenkins. Надеемся, что поддержка PVS-Studio этим плагином очень поможет тем, кто уже использует PVS-Studio, а также привлечет внимание к статическому анализу остальных пользователей Jenkins. И если в качестве статического анализатора ваш выбор падёт на PVS-Studio, мы будем очень рады. Приглашаем скачать и попробовать наш инструмент.



Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Valery Komarov. Configuration of the Warnings Next Generation plugin for integration into PVS-Studio.

Комментарии (0)