Данные сонара в «Дженкинсе» - PullRequest
0 голосов
/ 22 апреля 2020

Я использую многоотраслевую сборку Jenkins DSL в паре с сообществом Sonarqube + плагин для ветки сообщества. До сих пор я использовал waitForQualityGate, чтобы получить качественные результаты Сонара в Дженкинсе, и он работал, как и ожидалось. Я проверял qg.status для отображения статуса сонара, но теперь я попытался включить более подробную информацию (список неудачных проверок) на своей странице работы. Проблема в том, что на стороне Дженкинса JSON распечатка waitForQualityGate просто:

{"status":"ERROR"}

Когда я проверяю на стороне сонара, я вижу, что ловушка выполняется с ожидаемой полезной нагрузкой:

{
  "serverUrl": "http://localhost:9000",
  "taskId": "AXGhfNdNVsTZztVdmx-_",
  "status": "SUCCESS",
  "analysedAt": "2020-04-22T10:43:26+0000",
  "changedAt": "2020-04-22T10:43:26+0000",
  "project": {
    "key": "XXXXXX",
    "name": "XXXXXX",
    "url": "http://localhost:9000/dashboard?id=XXXXXX"
  },
  "branch": {
    "name": "branch_name",
    "type": "SHORT",
    "isMain": false,
    "url": "http://localhost:9000/project/issues?branch=branch_name&id=XXXXXX&resolved=false"
  },
  "qualityGate": {
    "name": "MY_quality_gate",
    "status": "ERROR",
    "conditions": [
      {
        "metric": "new_reliability_rating",
        "operator": "GREATER_THAN",
        "value": "1",
        "status": "OK",
        "errorThreshold": "1"
      },
      {
        "metric": "new_security_rating",
        "operator": "GREATER_THAN",
        "value": "1",
        "status": "OK",
        "errorThreshold": "1"
      },
      {
        "metric": "new_maintainability_rating",
        "operator": "GREATER_THAN",
        "value": "3",
        "status": "ERROR",
        "errorThreshold": "1"
      },
      {
        "metric": "new_coverage",
        "operator": "LESS_THAN",
        "value": "100.0",
        "status": "OK",
        "errorThreshold": "90"
      }
    ]
  },
  "properties": {}
}

Обратите внимание, что полезная нагрузка имеет статус = SUCCESS и qualityGate.status=ERROR, в то время как на стороне Jenkins она определяет status=ERROR и вообще не имеет узла qualityGate?

В журнале консоли задания я могу найти: [Pipeline] waitForQualityGate

Checking status of SonarQube task 'AXGh4vchVsTZztVdmx_J' on server 'SonarQube'
SonarQube task 'AXGh4vchVsTZztVdmx_J' status is 'SUCCESS'
SonarQube task 'AXGh4vchVsTZztVdmx_J' completed. Quality gate is 'ERROR'

Я не могу найти какие-либо настройки на стороне Jenkins, которые могут быть связаны с этой проблемой (стандартные настройки установлены и нормально работают).

Используемая версия: Jenkins: 2.150.1 SonarQube Плагин сканера: 2.8.1 Sonarqube: 7.7.0.23042

Заранее спасибо за любые советы или предложения ...

...