Как правильно использовать три шага плагина Jenkins Warnings Next Generation?

В документации для конвейеров подключаемого модуля Jenkins Warnings Next Generation указаны три варианта шагов:

  • publishIssues: Публиковать проблемы, созданные сканированием статического анализа
  • recordIssues: Запись предупреждений компилятора и результатов статического анализа
  • scanForIssues: Сканировать файлы или журнал консоли на наличие предупреждений или проблем

Я только что попробовал этот простой фрагмент:

stage('QA checks') {
    steps {
        recordIssues([
            enabledForFailure: true,
            tools: [php()]
        ])
    }
}

и получил результат, отображаемый на странице сборки ("Среда выполнения PHP: без предупреждений"). Но тогда какой смысл в двух других шагах?

Как правильно настроить плагин? Следует ли использовать эти три части вот так?

stage('QA checks') {
    steps {
        scanForIssues([...])
        recordIssues([...])
        publishIssues([...])
    }
}

person automatix    schedule 25.04.2020    source источник


Ответы (2)


Зашел сюда с тем же вопросом. Выяснил это из документов. https://github.com/jenkinsci/warnings-ng-plugin/blob/master/doc/Documentation.md

Таким образом, команда recordIssues предназначена для использования отдельно в простых случаях использования, а команды scanForIssues и publishIssues предназначены для совместного использования в более сложных случаях использования.

Таким образом, ваше использование recordIssues кажется полностью соответствующим намерениям авторов.

Из документации. :

Расширенная конфигурация конвейера

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

  • scanForIssues: этот шаг сканирует файл отчета или журнал консоли с помощью определенного парсера и создает промежуточный AnnotatedReport, содержащий отчет. [...]
  • publishIssues: этот шаг публикует в вашей сборке новый отчет, содержащий сводные результаты нескольких шагов scanForIssues. [...]
person user2510141    schedule 03.06.2020

В дополнение к принятому ответу, возможно, немного о том, как использовать плагин.

Официальная документация по шагам Jenkins также является прекрасным местом для посмотрите на плагин Warnings NG. Следующие примеры взяты из Warnings NG. Репозиторий Github.


publishIssues: публиковать проблемы, созданные сканированием статического анализа.

publishIssues issues: [checkstyle]

recordIssues: запись предупреждений компилятора и результатов статического анализа.

recordIssues enabledForFailure: true, aggregatingResults: true, tool: checkStyle(pattern: 'checkstyle-result.xml')

scanForIssues: сканирование файлов или журнала консоли на наличие предупреждений или проблем.

scanForIssues tool: checkStyle(pattern: '**/target/checkstyle-result.xml')

Следующий пример должен показать разницу между scanForIssues и publishIssues.

sh "${mvnHome}/bin/mvn --batch-mode -V -U -e checkstyle:checkstyle pmd:pmd pmd:cpd findbugs:findbugs"

def checkstyle = scanForIssues tool: checkStyle(pattern: '**/target/checkstyle-result.xml')
publishIssues issues: [checkstyle]
person Michael Kemmerzell    schedule 14.04.2021