SonarQube:在应用include模式后,在这个构建中没有发现任何分析



我正在尝试将SonarQube集成到Azure DevOps中的CI管道中。我使用了与其他管道中使用的配置完全相同的配置,在这些管道中一切都运行顺利。然而,这个管道在SonarQube发布步骤中找不到分析,如下日志所示。

##[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.

我发现这个问题很难解决,因为分析报告似乎在那里,但在应用include模式后,没有匹配。管道包含以下步骤:

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'

我试图解决这个问题:

  • 目前我使用的是ubuntu最新版本。我尝试了Windows映像
  • 应用超时
  • 将SonarQube步骤从主要版本4升级到5
  • 为每个项目csproj添加了一个唯一的GUID

正如Mickaël Caro在SonarSource社区论坛上的类似帖子中所说:

不幸的是,当我们试图查找报告路径时,一些字符没有被正确识别或解析(我们在这里提交了这个问题:[VSTS-240]在查找报告路径文件时转义regex字符。-SonarSource(。

我将构建名称中的[ ]更改为( ),分析运行顺利。

最新更新