You've already forked jenkins-lib
forked from jenkins/jenkins-lib
Merge pull request #72 from otymko/feat/53-wait-sq
This commit is contained in:
@@ -146,5 +146,6 @@ pipeline1C()
|
||||
* Используется `sonar-scanner` из переменной окружения `PATH` (`sonarqube` -> `useSonarScannerFromPath`).
|
||||
* Если использование `sonar-scanner` из переменной окружения `PATH` выключено, предполагается наличие настроенного глобального инструмента `SonarQube Scanner` с идентификатором инструмента `sonar-scanner` (`sonarqube` -> `sonarScannerToolName`).
|
||||
* Если разработка ведется с использованием подсистемы [БСП "Обновление версии ИБ"](https://its.1c.ru/db/bsp315doc#content:4:1:issogl1_обновление_версии_иб), то в значение параметра `sonar.projectVersion=$configurationVersion` утилиты `sonar-scanner` можно передавать версию из созданного общего модуля.
|
||||
* Шаг анализа не дожидается окончания фонового задания на сервере SonarQube и не анализирует результат прохождения Порога качества (`sonarqube` -> `waitForQualityGate`).
|
||||
Для этого необходимо заполнить параметр (`sonarqube` -> `infoBaseUpdateModuleName`). Если параметр не заполнен, версия передается из корня конфигурации.
|
||||
* Если выполнялась валидация EDT, результаты валидации в формате `generic issues` передаются утилите `sonar-scanner` как значение параметра `sonar.externalIssuesReportPaths`.
|
||||
|
@@ -45,7 +45,8 @@
|
||||
"useSonarScannerFromPath": true,
|
||||
"sonarScannerToolName": "sonar-scanner",
|
||||
"infoBaseUpdateModuleName" : "",
|
||||
"useBranchPlugin" : true
|
||||
"useBranchPlugin" : true,
|
||||
"waitForQualityGate": false
|
||||
},
|
||||
"syntaxCheck": {
|
||||
"groupErrorsByMetadata": true,
|
||||
|
@@ -122,7 +122,7 @@
|
||||
},
|
||||
"initInfobase" : {
|
||||
"type" : "object",
|
||||
"id" : "urn:jsonschema:ru:pulsar:jenkins:library:configuration:InitInfobaseOptions",
|
||||
"id" : "urn:jsonschema:ru:pulsar:jenkins:library:configuration:InitInfoBaseOptions",
|
||||
"description" : "Настройки шага инициализации ИБ",
|
||||
"properties" : {
|
||||
"initMethod" : {
|
||||
@@ -178,9 +178,13 @@
|
||||
"type" : "string",
|
||||
"description" : "Имя общего модуля (например, ОбновлениеИнформационнойБазыXXX), в котором указана версия библиотеки.\n Версия должна задаваться в виде присвоения `Описание.Версия = \"ваш номер версии\";`\n "
|
||||
},
|
||||
"useBranchPlugin" : {
|
||||
"useBranchPlugin" : {
|
||||
"type" : "boolean",
|
||||
"description" : "Используется ли Branch-plugin в SonarQube"
|
||||
},
|
||||
"waitForQualityGate" : {
|
||||
"type" : "boolean",
|
||||
"description" : "Ожидать состояние Quality Gate от SonarQube после загрузки анализа. По умолчанию `false`.\n Таймаут ожидания состояния равен таймауту шага.\n "
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@@ -27,6 +27,11 @@ class SonarQubeOptions implements Serializable {
|
||||
|
||||
@JsonPropertyDescription("Используется ли Branch-plugin в SonarQube")
|
||||
Boolean useBranchPlugin
|
||||
|
||||
@JsonPropertyDescription("""Ожидать состояние Quality Gate от SonarQube после загрузки анализа. По умолчанию `false`.
|
||||
Таймаут ожидания состояния равен таймауту шага.
|
||||
""")
|
||||
Boolean waitForQualityGate
|
||||
|
||||
@Override
|
||||
@NonCPS
|
||||
@@ -37,6 +42,7 @@ class SonarQubeOptions implements Serializable {
|
||||
", sonarQubeInstallation='" + sonarQubeInstallation + '\'' +
|
||||
", infoBaseUpdateModuleName='" + infoBaseUpdateModuleName + '\'' +
|
||||
", useBranchPlugin='" + useBranchPlugin + '\'' +
|
||||
", waitForQualityGate='" + waitForQualityGate + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
|
@@ -52,6 +52,12 @@ class SonarScanner implements Serializable {
|
||||
sonarCommand += " -Dsonar.externalIssuesReportPaths=build/out/edt-generic-issue.json"
|
||||
}
|
||||
|
||||
if (config.sonarQubeOptions.waitForQualityGate) {
|
||||
def timeoutInSeconds = config.timeoutOptions.sonarqube * 60
|
||||
sonarCommand += ' -Dsonar.qualitygate.wait=true'
|
||||
sonarCommand += " -Dsonar.qualitygate.timeout=${timeoutInSeconds}"
|
||||
}
|
||||
|
||||
def sonarQubeInstallation = config.sonarQubeOptions.sonarQubeInstallation
|
||||
if (sonarQubeInstallation == '') {
|
||||
sonarQubeInstallation = null
|
||||
|
Reference in New Issue
Block a user