Плагин Sonar Gerrit не сообщает о результатах

Мы используем конвейер и после успешного завершения сборки выполняем следующее:

bat "mvn sonar:sonar -B -s ${buildSettings} -Dsonar.analysis.mode=preview -Dsonar.skipDesign=true -Dsonar.report.export.path=sonar-report.json"

sonarToGerrit(severity: 'Major', postScore: true, category: 'Code-Review', newIssuesOnly: true, issuesScore: '0', noIssuesScore: '0', changedLinesOnly: true)

Приведенный ниже журнал сборки показывает, что он обнаружил большое количество проблем, но все же необходимо прокомментировать 0.

Журнал сборки

Другие посты предполагают, что он не может найти отчет, но я не верю, что это так, поскольку он обнаружил ряд проблем. Любой совет по конфигурации трубопровода будет высоко ценится.

Мы используем плагин Sonar Gerrit версии 2.2.1, Gerrit Trigger 2.27.3 и версию Jenkins Enterprise 2.60.3.1.

2 ответа

Решение

Наиболее распространенный случай, касающийся вашего вопроса, связан с тем, что SonarQube проверяет весь проект, независимо от количества изменений, которые были сделаны в конкретном изменении. При создании нового отчета он сравнивает результат с результатом, который сохраняется в его базе данных (с ранее найденными проблемами, которые были обнаружены в режиме, отличном от предварительного просмотра). Таким образом, сонар помечает как новые все проблемы, о которых он не знал раньше (и если вы вообще не сохраняете эту информацию в SonarQube - все проблемы будут помечены как новые). Но плагин sonar-gerrit может публиковать сообщения только в тех файлах, на которые повлияло изменение, которое он проверяет. Таким образом, даже если вы установите "false" в настройках "newIssuesOnly" и "changeLinesOnly", все проблемы в файлах, не затронутые изменением, будут игнорироваться.

Вкратце, убедитесь, что проблемы, отмеченные как "isNew" = "true" в вашем отчете гидролокатора, действительно были изменены (для changeLinesOnly = true) или расположены в измененных файлах (для changeLinesOnly = false) в коммите, который вы пытаетесь проверить.

Другая возможная причина - настройки конфигурации проекта. Если ваши файлы являются частью подмодуля, вам необходимо включить имя подмодуля в набор базовых каталогов проекта. Или вы можете попробовать использовать функцию "разрешить автоматическое совпадение". Функция пытается автоматически сопоставить модули SonarQube с именами Gerrit (доступно с версии 2.1).


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

На данный момент распознавание настроек серьезности (и других значений перечисления) чувствительно к регистру. Фактически, плагин игнорирует вашу настройку "Major", поскольку он не может ее распознать, и заменяет ее значением по умолчанию "INFO".

Другое дело, я не понимаю, почему вы устанавливаете для "postScore" значение "true", когда вы устанавливаете значения "Score" = 0 и"noIssuesScore"=0. Вы можете просто установить postScore=false и пропустить эти настройки вместе с "категорией" для простоты.

Также, если вы используете версию плагина выше 2.0, учтите, что API немного изменился и теперь использует следующую структуру:

sonarToGerrit (
        reviewConfig: [ 
            issueFilterConfig: [
                severity: 'MAJOR', 
                newIssuesOnly: false, 
                changedLinesOnly: false
                ], 
            noIssuesTitleTemplate: 'Your text here',
            someIssuesTitleTemplate: 'Your text here',
            issueCommentTemplate: 'Your text here'
        ]
    )

Хотя ваш код также должен работать (плагин поддерживает предыдущие версии), есть большая вероятность, что может быть ошибка.

Я также сталкиваюсь с той же проблемой с плагином Sonar-Gerrit jenkins. Скачал его с сайта плагинов Jenkins. Используя плагин Sonar-Gerrit 2.2.1, и анализировал сонарное сканирование на рабочем месте jenkins.

Для примера изменили только один файл и указали путь к этому файлу в базовом каталоге проекта, а также провели анализ сонара в режиме проблем.

Проблемы не загружаются в Gerrit с журналами

Отчет загружен и содержит 759 вопросов. Комментарии, которые необходимо прокомментировать: 0 Вопросы, связанные с подсчетом баллов: 0 Отзыв отправлен

Другие вопросы по тегам