Запуск PVS-Studio в Jenkins
- Автоматизирование запуска анализатора
- Плагин для визуализации результатов анализа
- Warnings Next Generation Plugin
- Дополнительные ссылки
Автоматизирование запуска анализатора
Для автоматизации процедуры анализа в CI (Continuous Integration) необходимо запускать анализатор как консольное приложение.
В Jenkins Вы можете создать один из следующих шагов сборки:
- Execute Windows batch command
- Windows PowerShell
- Execute shell
и вписать команду анализа (и команду конвертации отчёта в нужный формат).
Примеры команд запуска анализатора и интеграции в сборочные системы приведены на следующих страницах документации:
- Как запустить PVS-Studio в Linux и macOS;
- Как запустить PVS-Studio в Windows;
- Как запустить PVS-Studio Java.
Плагин для визуализации результатов анализа
На странице загрузки скачайте PVS-Studio Plugin в разделе про Jenkins. На диск сохранится файл pvs-studio.hpi. В таких пакетах распространяются Jenkins-плагины для ручной установки.
Установить плагин можно через UI, перейдя в меню Manage Jenkins > Manage Plugin > Advanced > Upload Plugin > Choose File, или через Jenkins CLI:
java -jar jenkins-cli.jar -s http://localhost:8080/ install-plugin SOURCE ...
PVS-Studio Plugin позволяет публиковать результаты статического анализа, для чего он использует отчёт анализатора в виде .html файла, который формируется следующими способами.
Windows: C, C++, C#
PlogConverter.exe ... --renderTypes Html ...
Linux/macOS: C, C++
plog-converter ... --renderTypes html ...
Windows/Linux/macOS: Java
В настройках плагинов для Maven и Gradle в поле outputType указать значение html.
Для публикации результатов анализа в настройках проекта необходимо добавить послесборочный шаг (секция Post-build Actions) Publish PVS-Studio analysis result. Обязательное поле - Path to PVS-Studio analysis report, в котором задаётся путь до .html-файла, содержимое которого и будет отображаться на странице сборки. Поддерживаются относительные (относительно workspace'a проекта) пути. Также поддерживаются переменные окружения Jenkins.
Если необходимо отобразить объединённые результаты из нескольких отчётов анализатора, то их можно объединить с помощью описанных выше утилит для конвертации. Аналогичным способом возможна дополнительная фильтрация результатов анализа.
Для того чтобы использовать плагин из pipeline скриптов необходимо добавить следующее
step([$class: 'PVSStudioPublisher', targetHtmlPath: 'report.html'])
где report.html – путь до .html файла отчета.
После успешного выполнения шага публикации результатов анализа PVS-Studio, они будут отображены на страницах сборки. Результаты сохраняются для каждой сборки, что позволит просматривать отчёт анализатора, соответствующий каждой конкретной сборке.
В случае, если результирующий отчёт анализатора имеет большой объём, на странице сборки будет отображаться его превью, а полный отчёт будет доступен для просмотра при нажатии ссылок View full report над / под превью отчёта, или Full PVS-Studio analysis report в меню слева.
Внешний вид страницы сборки с отображением результатов анализа PVS-Studio:
Warnings Next Generation Plugin
Warnings NG Plugin поддерживает отчёты анализатора PVS-Studio, начиная с версии плагина 6.0.0. Этот плагин предназначен для визуализации результатов работы различных анализаторов.
Установить плагин можно из стандартного репозитория Jenkins в меню Manage Jenkins > Manage Plugins > Available > Warnings Next Generation Plugin:

Для публикации результатов анализа в настройках проекта необходимо добавить послесборочный шаг (секция Post-build Actions) Record compiler warnings and static analysis results. Далее необходимо раскрыть список Tool и выбрать PVS-Studio. В поле Report File Pattern можно указать маску или путь к отчёту анализатора. Поддерживаются отчёты с расширением .plog и .xml.
В поле Report Encoding указывается кодировка, в которой будет считан файл отчета. Если поле пустое, то будет использована кодировка операционной системы, в которой запущен Jenkins. Поля Custom ID и Custom Name переопределяют отображаемые в интерфейсе идентификатор и имя выбранной утилиты соответственно.
Для публикации результатов анализа через pipeline скрипты добавьте следующее:
recordIssues enabledForFailure: true,sourceCodeEncoding:'UTF-8',
tool: PVSStudio(pattern: 'report.plog')
где report.plog отчет анализатора.
Сгенерировать отчёт в нужном формате можно следующими способами.
Windows: C, C++, C#
Отчёты с расширением .plog являются стандартными для Windows.
Linux/macOS: C, C++
plog-converter ... --renderTypes xml ...
Windows/Linux/macOS: Java
В настройках плагинов для Maven и Gradle в поле outputType указать значение xml.
После сборки проекта слева в списке появится новый элемент меню PVS-Studio Warnings. По нажатию на него открывается страница, где представлена визуализация данных отчета, созданного анализатором PVS-Studio:
Также при нажатии на значение в столбце File в браузере будет открыт файл с исходным кодом на строчке, где была найдена ошибка. Если открытие файла не работает, значит отчет был сформирован вне сборочной директории или файлы, участвовавшие в составлении отчета, перемещены или удалены.
В других CI настройка запуска анализатора и работа с отчётом выполняются аналогичным образом.