Невозможно запустить Sonarqube в декларативном конвейере Jenkins. - PullRequest
0 голосов
/ 29 мая 2018

Я следовал за документами, доступными на: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Jenkins

Однако я не могу заставить его работать.Сначала кажется, что документы нужно обновить, потому что синтаксис в примере неправильный.В последней версии декларативных конвейеров steps является обязательным внутри тега stage.Кроме того, ключевое слово def разрешается только тогда, когда оно находится внутри тега script.

Кроме того, когда я запускаю Jenkinsfile ниже, я получаю NPE:

java.lang.NullPointerException
    at org.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:150)
    at org.jenkinsci.plugins.workflow.steps.ToolStep$Execution.run(ToolStep.java:133)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1$1.call(SynchronousNonBlockingStepExecution.java:49)
    at hudson.security.ACL.impersonate(ACL.java:290)
    at org.jenkinsci.plugins.workflow.steps.SynchronousNonBlockingStepExecution$1.run(SynchronousNonBlockingStepExecution.java:46)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Jenkinsfile

pipeline {
  environment {
    scannerHome = tool 'SonarQube Scanner 3.2.0.1227'
  }
  agent {
    node {
      label "master"
    }
  }

  options {
    buildDiscarder logRotator(daysToKeepStr: '7')
  }

  stages {
    stage("Sonarqube analysis") {
      steps {
        withSonarQubeEnv('SonarQube Scanner') {
          bat "${scannerHome}/bin/sonar-scanner"
        }
      }
    }
  • Jenkins: v2.107.3
  • Сканер SonarQube для подключаемого модуля Jenkins: v 2.7.1
  • Сканер SonarQube: 3.2.0.1227 (комплектдля автоматической установки в Global Tool Config)
  • Запуск задания на главном сервере (Windows Server 2012 R2)

1 Ответ

0 голосов
/ 30 мая 2018

Исправлено следующее:

pipeline {
  agent {
    node {
      label "master"
    }
  }

  stages {
    stage("SonarQube analysis") {
       steps {
          script {
              def sonarScanner = tool name: 'SonarQube', type: 'hudson.plugins.sonar.SonarRunnerInstallation'
              bat "${sonarScanner}/bin/sonar-scanner -e -Dsonar.host.url=xxx"
            }
         }
      }
    }
  }
...