首页 > 解决方案 > SonarQube/Azure DevOps 代码分析失败 - .scannerwork/report-task.txt 未找到

问题描述

我们在 SonarQube 中运行由 Azure DevOps 中的管道触发的自动代码质量扫描:

    # retrieve and build code, run unit tests etc.
    - task: SonarQubePrepare@4
      displayName: 'Prepare SonarQube Scan'
      inputs:
        SonarQube: 'SonarQube DevOps Connection'
        scannerMode: 'CLI'
        configMode: 'file'
    - task: SonarQubeAnalyze@4
      displayName: 'Run SonarQube Scan'
    - task: SonarQubePublish@4
      displayName: 'Publish SonarQube Scan Report'
      inputs:
        pollingTimeoutSec: '300'

大约一周前,所有管道的主要分析任务('Run SonarQube Scan')开始失败,并出现以下错误:

...
##[error]ERROR: Error during SonarQube Scanner execution
ERROR: Error during SonarQube Scanner execution
##[error]java.lang.IllegalStateException: Unable to load properties from file /home/vsts/work/1/s/.scannerwork/report-task.txt
java.lang.IllegalStateException: Unable to load properties from file /home/vsts/work/1/s/.scannerwork/report-task.txt
...
##[error]Caused by: java.io.FileNotFoundException: /home/vsts/work/1/s/.scannerwork/report-task.txt (No such file or directory)
Caused by: java.io.FileNotFoundException: /home/vsts/work/1/s/.scannerwork/report-task.txt (No such file or directory)
...

我们没有对我们的管道进行任何更改,所以我对导致这种更改的原因感到困惑。

我们正在使用 SonarQube Enterprise EditionVersion 7.9.1(内部版本 27448)(本地安装)和用于 Azure DevOps 的 SonarQube 扩展 4.9.0 版(由 SonarSource 发布)。

25/3/20 更新(感谢 patricklu-msft):

我们正在使用带有ubuntu-16.04映像的 Microsoft 托管的构建代理。在调试模式下运行管道会显示以下内容:

2020-03-25T14:25:00.3694399Z 14:25:00.369 DEBUG: Report metadata written to /home/vsts/work/_temp/sonar/20200325.2/eec0f38a-913b-3db3-e1b2-71091ea5f860/report-task.txt

因此,报告元数据似乎正在被写入,/home/vsts/work/_temp/sonar/20200325.2/eec0f38a-913b-3db3-e1b2-71091ea5f860/report-task.txt但 SonarQube 随后在/home/vsts/work/1/s/.scannerwork/report-task.txt. 似乎mv某处缺少操作...

标签: azure-devopssonarqube

解决方案


不确定这是否是与 SonarQube 任务相关的问题。

根据这里的链接

The new version (4.7.x) is looking here:
##[debug]adjustedPattern: 'C:\AzureDevops\Agent2-GCS-Docker\_work\_temp\sonar\199416\**\report-task.txt’

看起来支持使用新版本查看临时文件夹中的 report-task.txt。

尝试回滚您的任务版本并检查这是否可以解决问题。


推荐阅读