Настройка Jenkins Pipeline и SonarQube - PullRequest
0 голосов
/ 24 апреля 2018

У меня проблемы с настройкой SonarQube с использованием Maven на конвейере Jenkins.

Мой конвейер перетаскивает git-репо в созданный для него каталог, и он успешно проходит остальные этапы, но я не вижу ни результатов теста на SonarQube, ни каких-либо выходных данных, которые тесты выполняются.

Вот мой код, настроенный на конвейере:

node('master'){

  stage('Git Clone') {
    dir('my-git-dir'){
    git branch: '$GIT_BRANCH'
      git url: '$GIT_REPO'
      credentialsId: '11111111-111-1111-1111-111111111111'
   }
  }

  stage('build & SonarQube Scan') {
      MVN="/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.3.9/bin/mvn"
      echo "running clean verify sonar"
      "$MVN clean verify sonar:sonar -Dsonar.host.url=http://111.11.1.111:9000 -Dsonar.java.binaries=/etc/sonarqube"
      echo "running clean install"
      "$MVN clean install deploy -DskipTests"
  }
}

Команда отлично работает в проекте со свободным стилем:

#!/usr/bin/bash
MVN="/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.3.9/bin/mvn"
$MVN clean verify sonar:sonar -Dsonar.host.url=http://111.11.1.111:9000 -Dsonar.java.binaries=/etc/sonarqube
$MVN clean install deploy -DskipTests

Он также имеет "Вызывать цели Maven верхнего уровня". Maven версия:

Maven 3.3.9

Голы:

test
-fn

Редактировать: рабочий скрипт

  stage('SonarQube analysis') {
     dir("$gitRepo"){
    withSonarQubeEnv('SonarQube') {
      sh "pwd"
      MVN="/var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/Maven_3.3.9/bin/mvn"
      echo "Running JaCoCO stuff"
      sh "$MVN clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=false"
      echo "running clean verify"
      sh "$MVN clean verify sonar:sonar -Dsonar.host.url=http://111.11.1.111:9000" //-Dsonar.java.binaries=/etc/sonarqube"
      echo "running clean install deploy"
      sh "$MVN clean install deploy -DskipTests"
}

P.S. Я пытаюсь создать задание, из которого вы можете выбрать репо и ветку для извлечения, создать / использовать файл в этом рабочем пространстве для запуска SonarQube на

1 Ответ

0 голосов
/ 24 апреля 2018

Ваш вопрос демонстрирует несколько недоразумений.

Во-первых, анализ SonarQube не выполнит ваши тесты для вас;Вы должны уволить это от себя.Как отмечено в документах , команда для этого будет выглядеть примерно так:

$MVN clean org.jacoco:jacoco-maven-plugin:prepare-agent install -Dmaven.test.failure.ignore=false

, за которым следует

$MVN sonar:sonar -sonar.host.url=http://111.11.1.111:9000

Обратите внимание, что я остановил -Dsonar.java.binaries=/etc/sonarqubeпараметр, который вы использовали.Это потому, что

  • Это путь к скомпилированным классам вашего проекта.Они не должны быть в /etc/sonarqube.(Переместите их, если они есть.)
  • Анализ Maven уже знает, где находятся ваши двоичные файлы, поэтому вам не нужно указывать путь, если ваша сборка не настроена на их размещение в странных местах.
...