1
0
mirror of https://github.com/firstBitMarksistskaya/jenkins-lib.git synced 2024-11-24 08:52:14 +02:00

Перенос флагов использования в отдельный объект в настройках

This commit is contained in:
Nikita Gryzlov 2020-04-17 14:24:58 +03:00
parent 80084fdcf2
commit 019c58c4c8
No known key found for this signature in database
GPG Key ID: C1EAE411FEF0BF2F
10 changed files with 57 additions and 24 deletions

View File

@ -4,14 +4,16 @@
"storagePath": "UNKNOWN_ID",
"storage": "UNKNOWN_ID"
},
"stages": {
"sonarQube": false,
"syntaxCheck": false
},
"sonarqube": {
"enabled": false,
"sonarQubeInstallation": "",
"useSonarScannerFromPath": true,
"sonarScannerToolName": "sonar-scanner"
},
"syntaxCheck": {
"enabled": false,
"groupErrorsByMetadata": true,
"pathToJUnitReport": "build/out/jUnit/syntax.xml",
"checkModes": [

View File

@ -21,15 +21,26 @@
}
}
},
"stages" : {
"type" : "object",
"id" : "urn:jsonschema:ru:pulsar:jenkins:library:configuration:StageFlags",
"description" : "Включение этапов сборок",
"properties" : {
"sonarQube" : {
"type" : "boolean",
"description" : "Анализ SonarQube включен"
},
"syntaxCheck" : {
"type" : "boolean",
"description" : "Синтаксический контроль включен"
}
}
},
"sonarqube" : {
"type" : "object",
"id" : "urn:jsonschema:ru:pulsar:jenkins:library:configuration:SonarQubeOptions",
"description" : "Настройки анализа SonarQube",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Анализ SonarQube включен"
},
"sonarQubeInstallation" : {
"type" : "string",
"description" : "Имя настроенного SonarQube-сервера (SonarQube installations).\nЕсли настроен только один сервер, то может быть оставлено пустым."
@ -49,10 +60,6 @@
"id" : "urn:jsonschema:ru:pulsar:jenkins:library:configuration:SyntaxCheckOptions",
"description" : "Настройки синтаксического контроля",
"properties" : {
"enabled" : {
"type" : "boolean",
"description" : "Синтаксический контроль включен"
},
"pathToJUnitReport" : {
"type" : "string",
"description" : "Путь к файлу отчета jUnit"

View File

@ -34,6 +34,7 @@ class ConfigurationReader implements Serializable {
) {
def nonMergeableSettings = Arrays.asList(
"secrets",
"stageFlags",
"sonarQubeOptions",
"syntaxCheckOptions"
).toSet()

View File

@ -10,6 +10,10 @@ class JobConfiguration implements Serializable {
@JsonPropertyDescription("Версия платформы 1С:Предприятие в формате 8.3.хх.хххх.")
String v8version
@JsonProperty("stages")
@JsonPropertyDescription("Включение этапов сборок")
StageFlags stageFlags;
@JsonPropertyDescription("Идентификаторы сохраненных секретов")
Secrets secrets;
@ -26,6 +30,7 @@ class JobConfiguration implements Serializable {
String toString() {
return "JobConfiguration{" +
"v8version='" + v8version + '\'' +
", stageFlags=" + stageFlags +
", secrets=" + secrets +
", sonarQubeOptions=" + sonarQubeOptions +
", syntaxCheckOptions=" + syntaxCheckOptions +

View File

@ -7,9 +7,6 @@ import com.fasterxml.jackson.annotation.JsonPropertyDescription
@JsonIgnoreProperties(ignoreUnknown = true)
class SonarQubeOptions implements Serializable {
@JsonPropertyDescription("Анализ SonarQube включен")
boolean enabled
@JsonPropertyDescription(
"Имя настроенного SonarQube-сервера (SonarQube installations).\nЕсли настроен только один сервер, то может быть оставлено пустым."
)
@ -27,8 +24,7 @@ class SonarQubeOptions implements Serializable {
@NonCPS
String toString() {
return "SonarQubeOptions{" +
"enabled=" + enabled +
", useSonarScannerFromPath=" + useSonarScannerFromPath +
"useSonarScannerFromPath=" + useSonarScannerFromPath +
", sonarScannerToolName='" + sonarScannerToolName + '\'' +
", sonarQubeInstallation='" + sonarQubeInstallation + '\'' +
'}';

View File

@ -0,0 +1,23 @@
package ru.pulsar.jenkins.library.configuration
import com.cloudbees.groovy.cps.NonCPS
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonPropertyDescription
@JsonIgnoreProperties(ignoreUnknown = true)
class StageFlags implements Serializable {
@JsonPropertyDescription("Анализ SonarQube включен")
boolean sonarQube
@JsonPropertyDescription("Синтаксический контроль включен")
boolean syntaxCheck
@Override
@NonCPS
String toString() {
return "StageFlags{" +
"sonarQube=" + sonarQube +
", syntaxCheck=" + syntaxCheck +
'}';
}
}

View File

@ -7,9 +7,6 @@ import com.fasterxml.jackson.annotation.JsonPropertyDescription
@JsonIgnoreProperties(ignoreUnknown = true)
class SyntaxCheckOptions implements Serializable {
@JsonPropertyDescription("Синтаксический контроль включен")
boolean enabled
@JsonPropertyDescription("Путь к файлу отчета jUnit")
String pathToJUnitReport
@ -23,8 +20,7 @@ class SyntaxCheckOptions implements Serializable {
@NonCPS
String toString() {
return "SyntaxCheckOptions{" +
"enabled=" + enabled +
", pathToJUnitReport='" + pathToJUnitReport + '\'' +
"pathToJUnitReport='" + pathToJUnitReport + '\'' +
", groupErrorsByMetadata=" + groupErrorsByMetadata +
", checkModes=" + checkModes +
'}';

View File

@ -21,7 +21,7 @@ class SonarScanner implements Serializable {
Logger.printLocation()
if (!config.sonarQubeOptions.enabled) {
if (!config.stageFlags.sonarQube) {
steps.echo("SonarQube step is disabled")
return
}

View File

@ -3,8 +3,10 @@
"secrets": {
"storage": "1234"
},
"stages": {
"syntaxCheck": true
},
"syntaxCheck": {
"enabled": true,
"checkModes": ["-ThinClient"]
}
}

View File

@ -7,12 +7,13 @@ def call(JobConfiguration config) {
printLocation()
def options = config.syntaxCheckOptions
if (!options.enabled) {
if (!config.stageFlags.syntaxCheck) {
echo("Syntax-check step is disabled")
return
}
def options = config.syntaxCheckOptions
installLocalDependencies()
unzipInfobase()