10.7 | Analyzing source code | CI integration | Jenkins integration | Key features
Key features of SonarQube integration with Jenkins
SonarSource provides an extension for Jenkins to enable smooth integration with Jenkins. With the SonarQube extension for Jenkins:
- You can install the SonarScanner CLI, for Maven, for Gradle, or for .NET from Jenkins and centralize the configuration of SonarQube server connection details in Jenkins global configuration.
- You can trigger the SonarQube analysis from your Jenkins Freestyle or Pipeline jobs using standard Jenkins build steps or Jenkins Pipeline DSL. Once the Jenkins job is complete, the extension will detect that a SonarQube analysis was made during the build and display a badge and a widget on the job page with a link to the SonarQube dashboard as well as quality gate status.
- You can configure an automatic failing of your pipeline in case your code fails the quality gate you defined in SonarQube: see below.
- From SonarQube Developer Edition, you can also trigger the SonarQube analysis from your Jenkins Multibranch Pipeline jobs.
Automatic interruption of your pipeline in case the quality gate fails
With the SonarQube extension for Jenkins, you can configure that your pipeline job fails in case the quality gate computed by SonarQube for your project fails. To do so, the extension makes webhook available: a webhook call must be configured in SonarQube to call back into Jenkins to allow the pipeline to continue or fail.
The figure below illustrates the process:
- A Jenkins Pipeline job is started.
- The job triggers the analysis by the SonarScanner.
- The SonarScanner sends the results to the SonarQube Server.
- The SonarQube Server completes the analysis, computes the quality gate configured for the project, and checks if the project fails or passes the quality gate.
- The SonarQube Server sends the pass or failure result back to the Jenkins webhook exposed by the SonarQube extension for Jenkins.
- The pipeline job continues (in case of a pass) or fails (otherwise).
Related pages
Was this page helpful?