Monorepo projects
Adding analysis to your Azure build pipeline for a monorepo.
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 monorepo projects. 
- 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 project integration. 
- 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@7Was this helpful?

