Latest | DevOps platform integration | Azure DevOps integration | Adding analysis to Azure pipeline | Monorepo projects
Adding analysis to your Azure build pipeline for a monorepo
On this page
Starting in Enterprise edition, you can add the SonarQube Server analysis to your Azure build pipeline for a monorepo.
Proceed as follows:
- If not already done, import your monorepo to create the corresponding projects in SonarQube Server: see Managing the projects in a monorepo.
- For each project, configure the analysis parameters, see Configuring the project analysis parameters in Creating and configuring your project.
- For each project, set up integration features, see Setting up Azure DevOps integration at the project level.
- Add the SonarQube Server analysis to your YAML pipeline. To do so, see the section corresponding to your project type and use the YAML file example below:
Typical YAML file example for a monorepo analysis
# Template pipeline that build 2 distinct .NET projects, living in 2 separate folders in the repo. We are analyzing them on SonarQube Server, each targets a specific SonarQube Server project.
trigger:
- master
pool:
vmImage: windows-latest
steps:
- task: VisualStudioTestPlatformInstaller@1
inputs:
packageFeedSelector: 'nugetOrg'
versionSelector: 'latestPreRelease'
- task: UseDotNet@2
inputs:
packageType: 'sdk'
version: '6.x'
includePreviewVersions: true
- task: NuGetToolInstaller@1
inputs:
versionSpec: '5.9.0'
checkLatest: true
- task: DotNetCoreCLI@2
inputs:
command: 'restore'
projects: '**/*.sln'
feedsToUse: 'select'
- task: SonarQubePrepare@7
inputs:
SonarQube: '<YourSonarqubeServerEndpoint>'
scannerMode: 'dotnet'
projectKey: 'myRepo_myProject1'
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: 'myproject1/solution.sln'
arguments: '/nr:false' // this flag is important to avoid DLL lock for the 2nd build/analysis
- task: SonarQubeAnalyze@7
- task: SonarQubePrepare@7
inputs:
SonarQube: '<YourSonarqubeServerEndpoint>'
scannerMode: 'dotnet'
projectKey: 'myRepo_myProject2'
- task: DotNetCoreCLI@2
inputs:
command: 'build'
projects: 'myProject2/solution.sln'
arguments: '/nr:false'
- task: SonarQubeAnalyze@7
- Adding the analysis for a Gradle or Maven project
- Adding the analysis for a .NET project
- Adding the analysis for a C family project
- Adding analysis for a JS, TS, GO, Python, PHP or other project
- Using various features when adding the analysis to your pipeline
- Checking the SonarQube quality gate status in your Azure release pipeline
- SonarQube tasks for Azure Pipelines
Was this page helpful?