SonarQube Scanner for Jenkins

The following plugin provides functionality available through
Pipeline-compatible steps. Read more about how to integrate steps into your
Pipeline in the
Steps
section of the
Pipeline Syntax
page.

For a list of other such plugins, see the
Pipeline Steps Reference
page.

SonarQube Scanner for Jenkins

View this plugin on the Plugins site

waitForQualityGate: Wait for SonarQube analysis to be completed and return quality gate status

This step pauses Pipeline execution and wait for previously submitted SonarQube analysis to be completed and returns quality gate status. Setting the parameter abortPipeline to true will abort the pipeline if quality gate status is not green.

Note: This step doesn’t require an executor.

Requirements:

  • SonarQube server 6.2+
  • Configure a webhook in your SonarQube server pointing to <your Jenkins instance>/sonarqube-webhook/. The trailing slash is mandatory!
  • Use withSonarQubeEnv step to run your analysis prior to use this step

Example using declarative pipeline:

      pipeline {
        agent none
        stages {
          stage("build & SonarQube analysis") {
            agent any
            steps {
              withSonarQubeEnv('My SonarQube Server') {
                sh 'mvn clean package sonar:sonar'
              }
            }
          }
          stage("Quality Gate") {
            steps {
              timeout(time: 1, unit: 'HOURS') {
                waitForQualityGate abortPipeline: true
              }
            }
          }
        }
      }
      

Example using scripted pipeline:

      stage("build & SonarQube analysis") {
          node {
              withSonarQubeEnv('My SonarQube Server') {
                 sh 'mvn clean package sonar:sonar'
              }
          }
      }

      stage("Quality Gate"){
          timeout(time: 1, unit: 'HOURS') {
              def qg = waitForQualityGate()
              if (qg.status != 'OK') {
                  error "Pipeline aborted due to quality gate failure: ${qg.status}"
              }
          }
      }
      

  • abortPipeline : boolean
  • credentialsId : String (optional)
  • webhookSecretId : String (optional)

withSonarQubeEnv: Prepare SonarQube Scanner environment

  • installationName : String
  • credentialsId : String (optional)
  • envOnly : boolean (optional)

Was this page helpful?

Please submit your feedback about this page through this
quick form.

Alternatively, if you don’t wish to complete the quick form, you can simply
indicate if you found this page helpful?

Yes    

No

See existing feedback here.