Azure Pipelines integration overview
The Azure DevOps Extension for SonarQube Community Build is used to manage the integration of SonarQube Community Build with Azure Pipelines. It allows:
- Adding the SonarQube Community Build analysis to your build pipeline.
- Checking the SonarQube Community Build quality gate status in your Azure release pipeline.
For general information about the SonarQube Community Build analysis integration into a CI pipeline, see Integration into your CI pipeline.
Extension modes
The Azure DevOps Extension for SonarQube Server can run in one of the following modes depending on your project type:
- .NET: for .NET projects. The SonarScanner for .NET is used.
- Maven or Gradle: for Maven and Gradle projects. The SonarScanner for Maven or SonarScanner for Gradle is used, respectively.
- CLI: for the other project types (C family, JavaScript, TypeScript, Go, Python, PHP, etc.). The SonarScanner CLI is used.
The Azure DevOps Extension for SonarQube Server embeds the last compatible version of the SonarScanner for .NET and SonarScanner CLI, which is used by default.
In Maven/Gradle mode, your build task downloads the SonarScanner for Maven or Gradle from the SonarSource binaries site.
In very particular situations, you may not want to use the extension's default version but a specific previous version of the SonarScanner for .NET or CLI. In such a case, you can configure your Azure build pipeline to download this specific version from the SonarSource binaries site (see Using a specific version of SonarScanner for .NET or CLI).
SonarQube tasks used in the pipeline definition
The SonarQube Server analysis is integrated into your Azure build pipeline by adding the following SonarQube tasks to your build pipeline definition:
- Prepare Analysis Configuration
- Run Code Analysis
This task starts the SonarScanner for .NET or CLI. In the Maven/Gradle mode, it is replaced by a Maven or Gradle task that downloads the SonarScanner for Maven or Gradle, respectively. - Publish Quality Gate Result
With this task, the quality gate status and a link to SonarQube Server are shown in the Azure Pipeline's Build Summary page.
The Publish Quality Gate Result task can significantly increase the overall build time because it will poll SonarQube until the analysis is complete.
Analysis process overview
The figure below shows the analysis main steps with the example of a .NET project :
- The pipeline’s Run Code Analysis task starts the SonarScanner for .NET embedded in the Azure DevOps Extension for SonarQube Server. (The SonarScanner then downloads its binaries from the server as explained in Scanner engine and analyzers download in Analysis overview.)
- Once the analysis is complete, the scanner sends the results to SonarQube Server.
- SonarQube Server sends the quality gate status to Azure DevOps. This information is processed through the pipeline’s Publish Quality Gate Result task.
Related pages
Was this page helpful?