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-15 18:22:40 +03:00
parent 7b786d85d9
commit c72ac6d893
No known key found for this signature in database
GPG Key ID: C1EAE411FEF0BF2F
4 changed files with 48 additions and 7 deletions

View File

@ -1,6 +1,8 @@
package ru.pulsar.jenkins.library.configuration
import com.cloudbees.groovy.cps.NonCPS
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.annotation.JsonPropertyDescription
@JsonIgnoreProperties(ignoreUnknown = true)
@ -8,18 +10,20 @@ class JobConfiguration implements Serializable {
@JsonPropertyDescription("Версия платформы 1С:Предприятие в формате 8.3.хх.хххх.")
String v8version
@JsonPropertyDescription("Имя настроенной утилиты sonar-scanner.")
String sonarScannerToolName
@JsonPropertyDescription("Идентификаторы сохраненных секретов")
Secrets secrets;
@JsonProperty("sonarqube")
@JsonPropertyDescription("Настройки анализа SonarQube")
SonarQubeOptions sonarQubeOptions;
@Override
@NonCPS
String toString() {
return "JobConfiguration{" +
"v8version='" + v8version + '\'' +
", sonarScannerToolName='" + sonarScannerToolName + '\'' +
", secrets=" + secrets.toString() +
", secrets=" + secrets +
", sonarQubeOptions=" + sonarQubeOptions +
'}';
}
}

View File

@ -1,5 +1,6 @@
package ru.pulsar.jenkins.library.configuration
import com.cloudbees.groovy.cps.NonCPS
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
import com.fasterxml.jackson.annotation.JsonPropertyDescription
@ -12,8 +13,8 @@ class Secrets implements Serializable {
@JsonPropertyDescription("Данные авторизации в хранилище конфигурации")
String storage
@Override
@NonCPS
String toString() {
return "Secrets{" +
"storagePath='" + storagePath + '\'' +

View File

@ -0,0 +1,36 @@
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 SonarQubeOptions implements Serializable {
@JsonPropertyDescription("Анализ SonarQube включен")
boolean enabled
@JsonPropertyDescription(
"Имя настроенного SonarQube-сервера (SonarQube installations).\nЕсли настроен только один сервер, то может быть оставлено пустым."
)
String sonarQubeInstallation;
@JsonPropertyDescription("Использовать sonar-scanner, доступный в PATH")
boolean useSonarScannerFromPath
@JsonPropertyDescription(
"Имя настроенной утилиты sonar-scanner.\nПрименяется, если useSonarScannerFromPath установлено в false."
)
String sonarScannerToolName
@Override
@NonCPS
String toString() {
return "SonarQubeOptions{" +
"enabled=" + enabled +
", useSonarScannerFromPath=" + useSonarScannerFromPath +
", sonarScannerToolName='" + sonarScannerToolName + '\'' +
", sonarQubeInstallation='" + sonarQubeInstallation + '\'' +
'}';
}
}

View File

@ -31,7 +31,7 @@ class ConfigurationReaderTest {
// then
assertThat(jobConfiguration.getV8version()).isEqualTo("8.3.14.1944");
assertThat(jobConfiguration.getSonarScannerToolName()).isEqualTo("sonar-scanner");
assertThat(jobConfiguration.getSonarQubeOptions().getSonarScannerToolName()).isEqualTo("sonar-scanner");
assertThat(jobConfiguration.getSecrets())
.hasFieldOrPropertyWithValue("storage", "1234")
.hasFieldOrPropertyWithValue("storagePath", "UNKNOWN_ID")