Start Free
SonarQube Community Build | DevOps platform integration | Azure DevOps integration | Adding analysis to Azure pipeline | Using various features

Using various features when adding SonarQube analysis to your Azure build pipeline

On this page

This section explains features you may use when adding SonarQube analysis to your Azure build pipeline:

  • Choosing the analysis configuration mode (only in the Standalone SonarScanner CLI mode).
  • Using a specific version of the SonarScanner for .NET or CLI
  • Using the cache feature

Choosing the configuration mode 

In the CLI mode of the Azure DevOps Extension, you may:

  • Either use the file configuration mode (default mode) which consists of setting analysis parameters in the sonar-project.properties file stored in the repository root (or another specified configuration file).
  • Or use the manual configuration mode to define analysis parameters at the pipeline level. In that case, the scanner doesn’t check the sonar-project.properties file.

See also Configuring the project analysis parameters in Creating and configuring your project.

Using the file configuration mode

The file configuration mode is the default mode of the Azure DevOps Extension for SonarQube. 

YAML pipeline
  1. Make sure the configMode input of the SonarQubePrepare task is set to file.
  2. To use a different configuration file than sonar-project.properties, add the configFile task input to the SonarQubePrepare task, with the path to the configuration file as the value. The path can be absolute, or relative to the repository root.
Classic pipeline

In the Prepare Analysis Configuration task:

  1. Make sure the Store configuration with my source code mode is selected.
  2. In Settings file, you can define a different configuration file than sonar-project.properties. The path can be absolute, or relative to the repository root.
Using the manual configuration mode

To define analysis parameters at the pipeline level in Standalone SonarScanner CLI mode, proceed as described below.

YAML pipeline
  1. Make sure the configMode task input in the SonarQubePrepare task is set to  manual.
  2. Use the extraProperties task input in the SonarQubePrepare task to define the analysis parameters: define a new sonar property by adding <propertyKey>=<propertyValue> on a new line. 
Classic pipeline

In the Prepare Analysis Configuration task:

1. Select the Manually provide configuration mode and enter the required parameters.

2. In Advanced section > Additional properties, define a new sonar property by adding <propertyKey>=<propertyValue> on a new line. 
Example: sonar.exclusions=**/*.bin

Using a specific version of SonarScanner for .NET or CLI

The Azure DevOps Extension for SonarQube embeds the latest compatible version of the SonarScanner for .NET and SonarScanner CLI. In very particular situations, you may want to use another scanner version. In such a case, you can configure the download of this specific version from the SonarSource binaries site. In addition, you can use the Azure cache task(see below) in your pipeline to manage the caching of the SonarScanner.

The figure below shows the download process of a specific version of SonarScanner for .NET or SonarScanner CLI.

Set up the download in the Prepare Analysis Configuration task of your pipeline as described below.

SonarScanner for .NET

You must specify the full version number, such as 8.0.3.99785 (and not 8.0.3). All of the available version numbers can be found here.

YAML pipeline

Add the following input to the Prepare Analysis Configuration task:

  • dotnetScannerVersion: The SonarScanner for .NET version to be downloaded.

The code snippet below shows a task configuration example. For more information about the task inputs, see SonarQube tasks.

- task: SonarQubePrepare@7

  inputs:

    SonarQube: '<YourSonarqubeServerEndpoint>'

    scannerMode: 'dotnet'

    dotnetScannerVersion: '8.0.3.99785'

    projectKey: '<YourProjectKey>'
Classic pipeline

In Scanner Version, enter the version to be downloaded.

SonarScanner CLI

You must specify the full version number, such as 6.0.0.4432 (and not 6.0.0). All of the available version numbers can be found here.

YAML pipeline

Add the following input to the Prepare Analysis Configuration task

  • cliScannerVersion: The SonarScanner CLI version to be downloaded.

The code snippet below shows a task configuration example. For more information about the task inputs, see  SonarQube tasks.

- task: SonarQubePrepare@7

  inputs:

    SonarQube: '<YourSonarqubeServerEndpoint>'

    scannerMode: 'cli'

    configMode: 'file'
    configFile: 'my-config.properties'	

    cliScannerVersion: '6.0.0.4432'

    cliProjectKey: '<YourProjectKey>'

    cliSources: '.' 
Classic pipeline

In Scanner CLI Version, enter the version to be downloaded.

Using the cache feature

Azure DevOps allows pipeline caching to improve build performance by facilitating the download of dependencies between pipeline runs. Currently, you can only cache the SonarScanner (bootstrapper) that is downloaded when you need a specific version of SonarScanner for .NET or CLI. 

Proceed as follows:

  • Add a cache task to your Azure build pipeline before SonarQube’s Prepare Analysis Configuration task. See the code snippet below according to the extension mode.
.NET
- task: Cache@2

  displayName: Cache SonarScanner

  inputs:

    key: '"SonarScanner" | ".NET" | "$(Agent.OS)"'

    path: '$(Agent.ToolsDirectory)/SonarScanner .NET'
CLI
- task: Cache@2

  displayName: Cache SonarScanner

  inputs:

    key: '"SonarScanner" | "CLI" | "$(Agent.OS)"'

    path: '$(Agent.ToolsDirectory)/SonarScanner CLI'

Was this page helpful?

© 2008-2025 SonarSource SA. All rights reserved. SONAR, SONARSOURCE, SONARQUBE, and CLEAN AS YOU CODE are trademarks of SonarSource SA.

Creative Commons License