Yuri
Yuri

Reputation: 21

SonarQube: No analysis found in this build after applying include pattern

I am trying to integrate SonarQube in a CI-pipeline in Azure DevOps. I used the exact configuration that I used in other pipelines where everything runs smoothly. However, this pipeline can't find the analysis in the SonarQube Publish step as shown in the logs below.

##[debug]  /home/vsts/work/_temp/sonar (directory)
##[debug]  /home/vsts/work/_temp/sonar/Company.Service-CI[sonarqube-test][121226][2022-01-19] (directory)
##[debug]  /home/vsts/work/_temp/sonar/Company.Service-CI[sonarqube-test][121226][2022-01-19]/9731b11b-6af8-d211-752d-e8fe0770156c (directory)
##[debug]  /home/vsts/work/_temp/sonar/Company.Service-CI[sonarqube-test][121226][2022-01-19]/9731b11b-6af8-d211-752d-e8fe0770156c/report-task.txt (file)
##[debug]4 results
##[debug]found 4 paths
##[debug]applying include pattern
##[debug]adjustedPattern: '/home/vsts/work/_temp/sonar/Company.Service-CI[sonarqube-test][121226][2022-01-19]/**/report-task.txt'
##[debug]0 matches
##[debug]0 final results
##[debug][SQ] Searching for sonar/Company.Service-CI[sonarqube-test][121226][2022-01-19]/**/report-task.txt - found 0 file(s)
##[warning]No analyses found in this build! Please check your build configuration.

I find this problem hard to solve because it seems like the analysis report is there but after applying the include pattern there are zero matches. The pipeline contains the following steps:

stages:
- stage: 
  jobs:
  - job: Build_Restore_and_Run_Unit_Tests
    pool:
      vmImage: ubuntu-latest
    steps:
    - task: SonarQubePrepare@5
      displayName: SonarQube
      inputs: 
        SonarQube: SonarQube
        scannerMode: MSBuild
        projectKey: $(sonarQubeProjectKey)
        projectName: $(sonarQubeProjectName)
        extraProperties: |
          sonar.cs.opencover.reportsPaths=$(Agent.TempDirectory)/*/coverage.opencover.xml
        
    - task: DotNetCoreCLI@2
      displayName: Restore
      inputs:
        command: 'restore'
        projects: 'src/**/*.csproj'
        feedsToUse: 'select'
        vstsFeed: '989127ec-b6ef-4c8c-ae54-90dec743281d'

    - task: DotNetCoreCLI@2
      displayName: Build
      inputs:
        command: build
        projects: |
              **/*.Test.csproj
        arguments: '--configuration $(buildConfiguration) --no-restore'

    - task: DotNetCoreCLI@2
      displayName: Test
      inputs:
        command: test
        projects: '**/*.Test.csproj'
        nobuild: true
        arguments: '--no-restore --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura,opencover'
        publishTestResults: true
        
    - task: PublishCodeCoverageResults@1
      displayName: Publish code coverage
      inputs:
        codeCoverageTool: Cobertura
        summaryFileLocation: $(Agent.TempDirectory)/*/coverage.cobertura.xml
        
    - task: SonarQubeAnalyze@5
      displayName: Run code analysis
    
    - task: SonarQubePublish@5
      displayName: Publish quality gate result
      inputs:
        pollingTimeoutSec: '300'

My attempts to fix this issue:

Upvotes: 1

Views: 3629

Answers (1)

Yuri
Yuri

Reputation: 21

As Mickaël Caro stated on my similar post in the SonarSource community forum:

Unfortunately some characters are not recognized nor parsed correctly when we try to find the report path (We do have this issue filed here : [VSTS-240] Escape regex characters when finding report path file. - SonarSource).

I changed the [ ] in the name of the build to ( ), and the analysis runs smoothly.

Upvotes: 1

Related Questions