Как настроить сканер SonarQube в jenkins для проекта js / ts / react - PullRequest
0 голосов
/ 13 июля 2020

Я бы хотел, чтобы в моем проекте работал сонарный сканер при его сборке в jenkins.

Примерно так, Something like this

Most of the tutorials seem to only address this process from a Java perspective, So I am wondering how this can be done if at all.

I am doing some of the work out of a Jenkinsfile in my project:

stage('SonarQube') {
  environment {
    scannerHome = tool 'SonarQubeScanner'
  }
  steps {
    withSonarQubeEnv('SonarQubeScanner') {
      sh "${scannerHome}/bin/sonar-scanner"
    }
  }
}

I used the following link to get the project in SonarQube: https://nickkorbel.com/2020/02/05/configuring-sonar-with-a-create-react-app-in-typescript/

пара разных ошибок при попытке запуска сканирования во время сборки Jenkins:

Ошибка 1

Could not find executable in "/opt/app-root/src/.sonar/native-sonar-scanner".

Proceed with download of the platform binaries for SonarScanner...
 Creating /opt/app-root/src/.sonar/native-sonar-scanner

Downloading from https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.4.0.2170-linux.zip

(executable will be saved in cache folder: /opt/app-root/src/.sonar/native-sonar-scanner)

ERROR: impossible to download and extract binary: connect ETIMEDOUT 

Ошибка 2

ERROR: Failed to download https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.4.0.2170-linux.zip from agent; will retry from master

SonarQube installation defined in this job (sonarqube) does not match any configured installation. Number of installations that can be configured: 1.

1 Ответ

1 голос
/ 13 июля 2020

Ошибка 2 связана с отсутствием интеграции с сервером sonarqube.

Полная установка sonarqube:

  1. Установить сервер SonarQube
  2. Установить плагин SonarQube Scanner для Jenkins.
  3. Настройте сервер (ы) SonarQube:
  • Войдите в Jenkins как администратор и go для управления Jenkins> Настроить систему.
  • Прокрутка в раздел конфигурации SonarQube, щелкните Добавить SonarQube и добавьте запрашиваемые значения.
  • Маркер аутентификации сервера должен быть создан как учетные данные «Секретный текст».

withSonarQubeEnv('SonarQubeScanner') - «SonarQubeScanner» означает имя сервера Sonarqube из шага 3.

В конвейере вы должны передать параметры для инструмента сонара-сканера, например:

stage('SonarQube analysis') {
        environment {
            scannerHome = tool 'SonarQube_4.3.0'
        }
        steps {
            withSonarQubeEnv('Your Sonar Server Name here') {
                sh '''
                ${scannerHome}/bin/sonar-scanner \
                -D sonar.projectKey=YOUR_PROJECT_KEY_HERE \
                -D sonar.projectName=YOUR_PROJECT_NAME_HERE \
                -D sonar.projectVersion=YOUR_PROJECT_VERSION_HERE \
                -D sonar.languages=js,ts \  // DEPRECATED, do not use this option
                -D sonar.sources=./src \
                -D sonar.test.inclusions=YOUR_INCLUSIONS_HERE \
                -D sonar.exclusions=YOUR_EXCLUSIONS_HERE
                '''
            }
        }
    }

Предположим, ошибка 1 будет исправлена ​​после исправления ошибки 2. Взгляните на официальную документацию здесь

...