Плагин значений отчетов Jenkins Gerrit удаляет значение Code-review - PullRequest
0 голосов
/ 18 октября 2019

У меня есть конвейерный скрипт с двумя шагами.

  • SonarQube анализ
  • UnitTests

Если SonarQube находит предупрежденияон сообщает о них Джерриту как комментарии и устанавливает Code-review-1. Следующим этапом является UnitTest, и если он в порядке, конвейер будет успешным, и Дженкинс должен доложить Герриту Verified+1. НО, когда Дженкинс сообщает о Verified+1, тогда удаляется Code-review-1.

Связанная часть моего сценария конвейера:

....
stage('SonarQube') {
            steps {
                ....
                    ....
                            scoreConfig: [
                                issueFilterConfig: [
                                    severity: 'INFO', 
                                    newIssuesOnly: false, 
                                    changedLinesOnly: false
                                    ], 
                                category: 'Code-Review', 
                                noIssuesScore: 0,
                                issuesScore: -1
                            ]
                     ....
        }
        stage('UnitTest') {
            steps {
                ansiColor('xterm') {
                    sh '''./unittest.sh'''
                }
      ....

Мой раздел "Значения отчетности Gerrit":

Gerrit Reporting Values section

Моя история Gerrit:

Gerrit history

Мой окончательный результат:

Final result

Мой вопрос:

Как я могу установить Code-review-1 и Verified+1 в один запуск? Как можно избежать того, что Геррит удаляет Code-review-1, когда сообщает Verified+1? Я открыт для решения с графическим интерфейсом, а также Pipeline.

РЕДАКТИРОВАТЬ:

Это не вариант, чтобы изменить глобальную конфигурацию плагина Gerrit. Я должен решить это на уровне работы Дженкинса. Возможно ли это?

Ответы [ 2 ]

1 голос
/ 18 октября 2019

Я думаю, вы должны оставить пустую строку в полях «Проверка кода». Значение «0» означает, что вы хотите удалить предыдущий голос. Но вам также необходимо проверить глобальную конфигурацию триггера Gerrit на

Jenkins > Manage Jenkins > Gerrit Trigger > Edit > Gerrit Reporting Values.
0 голосов
/ 07 ноября 2019

Прежде всего, как я уже упоминал в своем вопросе, глобальное изменение конфигурации Gerri t и новый сервер Gerrit не были для меня опцией. Мне нужно было решить эту проблему на уровне работы Дженкинса.

Я нашел «решение», которое скорее обходное, но оно работает.

Шаг 0:

Если вы проверяете STDOUT из SonarQube в журнале консоли Jenkins, вы можете увидеть конкретную строку, которая указывает количество проблем, которые влияют на вычисление оценки. Эта строка: Issues to be involved in score calculation: X. Это означает, что вы можете знать, есть ли затронутые проблемы или нет, основываясь на этой строке.

Jenkins console log

Шаг 1:

Вам следует проверить журнал консоли Jenkins и найти количество проблем, которые связаны с подсчетом очков. Вы можете увидеть ниже мою реализацию для этого. Если есть проблема (значение RegEx не равно нулю), тогда на этом этапе следует установить результат сборки на UNSTABLE.

stage('Results') {
            steps {
                script{
                        for(String line : currentBuild.getRawBuild().getLog(30)){
                            def find_pattern = (line =~ /^Issues to be involved in score calculation: [1-9]/)
                            if(find_pattern){
                                echo line
                                echo "Sonar has found warnings in changed lines. Build goes to UNSTABLE."
                                currentBuild.result = "UNSTABLE"
                            }
                        }
                    }

Пример вывода о том, как это работает:

Report has loaded and contains 1021 issues
Issues to be commented: 1
Issues to be involved in score calculation: 1
Review has been sent
[Pipeline] }
[Pipeline] // withSonarQubeEnv
[Pipeline] }
[Pipeline] // ansiColor
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Results)
[Pipeline] script
[Pipeline] {
[Pipeline] echo
Issues to be involved in score calculation: 1
[Pipeline] echo
Sonar has found warnings in changed lines. Build goes to UNSTABLE.

Шаг 2:

Сконфигурируйте блок Gerrit Reporting Values, чтобы вернуть оба значения (метки CR и Verified) обратно в Gerrit в случае UNSTABLE Результат построения.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...