SonarQube / Azure Ошибка анализа кода DevOps - .scannerwork / report-task.txt не найден - PullRequest
1 голос
/ 24 марта 2020

Мы запускаем автоматические проверки качества кода в 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'

Около недели a go, основная задача анализа («Запустить сканирование SonarQube» ) начал сбой для всех конвейеров со следующей ошибкой:

...
##[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 Edition версии 7.9.1 (сборка 27448) (локальная установка) и версия 4.9.0 расширения SonarQube для Azure DevOps (опубликовано SonarSource).

ОБНОВЛЕНИЕ 25/3/20 (спасибо to patricklu-msft):

Мы используем агент компоновки, размещенный в Microsoft с образом ubuntu-16.04. Запуск конвейера в режиме отладки показывает следующее:

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

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Не уверен, если это проблема, связанная со стороной задачи SonarQube.

По этой ссылке здесь :

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

Похоже, поддерживается просмотр отчета. task.txt в папке temp с новой версией.

Попробуйте откатить версию вашей задачи и проверить, справится ли она с этим.

0 голосов
/ 27 марта 2020

При более тщательной проверке журналов Azure конвейеров были обнаружены две записи, которых раньше не было:

2020-03-26T15:26:44.0989881Z INFO: Executing post-job 'Forbidden Configuration Breaker'
2020-03-26T15:26:44.0990841Z INFO: Executing post-job 'Quality Gate Breaker'

Кто-то установил плагин Sonar Build-Breaker в неделю go, не говоря нам, и никто из нас еще не настроил его правильно в наших конвейерах. Установка этого параметра для пропуска проверки качества (sonar.buildbreaker.skip=true) эффективно обходит его (хотя эти две записи журнала все еще появляются), и конвейеры снова успешно работают.

Обновление 24/04/2020 : Теперь я обновил плагин Build Breaker до версии 2.3.1 (сборка 347), и это, похоже, устранило проблему.

...