Реліз PVS-Studio 7.04 збігся з релізом плагіна Warnings Next Generation 6.0.0 для Jenkins. Саме в цьому релізі Warnings NG Plugin додав підтримку статичного аналізатора PVS-Studio. Цей плагін візуалізує дані про попередження компілятора або інших інструментів аналізу Jenkins. У цій статті буде докладно розказано як встановити та налаштувати даний плагін для використання з PVS-Studio, а також описано більшість його можливостей.
Встановлення Warning Next Generation Plugin у Jenkins
За замовчуванням Jenkins знаходиться за адресою
Далі вибираємо пункт "Manage Plugins", відкриваємо закладку "Available":
У верхньому правому кутку в полі фільтра вводимо «Warnings Next Generation»:
Знаходимо плагін у списку, ставимо зліва галочку і тиснемо «Install without restart»:
Відкриється сторінка встановлення плагінів. На ній ми побачимо результати встановлення плагіна:
Створення нового завдання в Jenkins
Тепер створимо завдання із вільною конфігурацією. На головній сторінці Jenkins оберемо New Item. Введемо ім'я проекту (наприклад, WTM) та виберемо пункт "Freestyle project".
Натисніть "Ок", після чого відкриється сторінка налаштування завдання. Внизу цієї сторінки в пункті Post-build Actions відкриваємо список «Add post-build action». У списку вибираємо "Record compiler warnings and static analysis results":
У списку поля «Tool» вибираємо «PVS-Studio», після цього тиснемо кнопку зберегти. На сторінці завдання тиснемо «Build Now», щоб створити папку в workspace в Jenkins для нашого завдання:
Отримання результатів складання проекту
Сьогодні у трендах Github мені попався проект dotnetcore/WTM. Я завантажив його з Github, закинув у збірну директорію WTM у Jenkins та проаналізував у Visual Studio за допомогою аналізатора PVS-Studio. Детальний опис використання PVS-Studio у Visual Studio представлено в однойменній статті:
Запустив складання проекту в Jenkins кілька разів. В результаті справа вгорі на сторінці завдання WTM у Jenkins з'явився графік, а зліва з'явився пункт меню PVS-Studio Warnings:
При натисканні на графік або пункт меню відкривається сторінка з візуалізацією звіту аналізатора PVS-Studio плагіном Warnings Next Generation:
Сторінка з результатами
На сторінці зверху розташовані дві кругові діаграми. Праворуч від діаграм розташовано вікно графіків. Унизу розташувалася таблиця.
На лівій круговій діаграмі відображається співвідношення попереджень різного рівня небезпеки, правою – співвідношення нових, не виправлених та виправлених попереджень. Є три графіки. Вибір графіка, що відображається, відбувається за допомогою стрілок зліва і справа. Перші два графіки відображають ту саму інформацію, що й діаграми, а третій – зміна кількості попереджень.
Як точки графіків можна вибрати складання або дні.
Також є можливість звужувати та розширювати часовий діапазон графіка, щоб побачити дані за певний проміжок:
Можна приховувати графіки певних метриків за натисканням на позначення метрики в легенді графіка:
Графік після приховування метрики "Normal":
Внизу розташована таблиця, що відображає дані звіту аналізатора. При натисканні сектор кругової діаграми відбувається фільтрація таблиці:
У таблиці є кілька закладок фільтрації даних. У цьому прикладі доступна фільтрація по namespace, файлу, категорії (ім'я попередження). У таблиці можна вибрати, яку кількість попереджень відображати на одну сторінку (10, 25, 50, 100):
Є можливість фільтрації даних за рядком, введеним у полі «Search». Приклад фільтрації за словом:
На закладці «Issues» при натисканні на плюсик на початку рядка таблиці з'явиться короткий опис попередження:
Короткий опис містить посилання на сайт з детальною інформацією щодо цього попередження.
При натисканні на значення в стовпцях "Package", "Category", "Type", "Severity" відбувається фільтрація даних таблиці за вибраним значенням. Фільтрування за категорією:
У стовпці «Age» відображається скільки збірок пережило це попередження. При натисканні на значення в стовпці «Age» буде відкрито сторінку збирання, в якій вперше з'явилося це попередження.
При натисканні на значення в стовпці "File" буде відкритий вихідний код файлу на рядку з кодом, що спричинив попередження. Якщо файл відсутній у складальній директорії або був переміщений після створення звіту, відкриття вихідного коду файлу виявиться неможливим.
Висновок
Warnings Next Generation виявився дуже зручним інструментом візуалізації даних у Jenkins. Сподіваємося, що підтримка PVS-Studio цим плагіном допоможе тим, хто вже використовує PVS-Studio, а також приверне увагу до статичного аналізу інших користувачів Jenkins. І якщо як статичний аналізатор ваш вибір паде на PVS-Studio, ми будемо дуже раді. Запрошуємо
Якщо хочете поділитися цією статтею з англомовною аудиторією, прошу використати посилання на переклад: Valery Komarov.
Джерело: habr.com