You've already forked jenkins-lib
mirror of
https://github.com/firstBitMarksistskaya/jenkins-lib.git
synced 2025-08-25 20:09:25 +02:00
пgeneralize archive infobase
This commit is contained in:
@@ -45,13 +45,24 @@
|
|||||||
"additionalInitializationSteps": [],
|
"additionalInitializationSteps": [],
|
||||||
"templateDBPath": "",
|
"templateDBPath": "",
|
||||||
"vrunnerSettings": "./tools/vrunner.json",
|
"vrunnerSettings": "./tools/vrunner.json",
|
||||||
"archiveInfobase": false,
|
"archiveInfobase": {
|
||||||
|
"onAlways": false,
|
||||||
|
"onFailure": true,
|
||||||
|
"onUnstable": false,
|
||||||
|
"onSuccess": false
|
||||||
|
},
|
||||||
"extensions": []
|
"extensions": []
|
||||||
},
|
},
|
||||||
"bdd": {
|
"bdd": {
|
||||||
"vrunnerSteps": [
|
"vrunnerSteps": [
|
||||||
"vanessa --settings ./tools/vrunner.json"
|
"vanessa --settings ./tools/vrunner.json"
|
||||||
],
|
],
|
||||||
|
"archiveInfobase": {
|
||||||
|
"onAlways": false,
|
||||||
|
"onFailure": true,
|
||||||
|
"onUnstable": false,
|
||||||
|
"onSuccess": false
|
||||||
|
},
|
||||||
"coverage": false,
|
"coverage": false,
|
||||||
"dbgsPort": 1550
|
"dbgsPort": 1550
|
||||||
},
|
},
|
||||||
@@ -59,7 +70,7 @@
|
|||||||
"sonarQubeInstallation": "",
|
"sonarQubeInstallation": "",
|
||||||
"useSonarScannerFromPath": true,
|
"useSonarScannerFromPath": true,
|
||||||
"sonarScannerToolName": "sonar-scanner",
|
"sonarScannerToolName": "sonar-scanner",
|
||||||
"infoBaseUpdateModuleName" : "",
|
"infoBaseUpdateModuleName": "",
|
||||||
"branchAnalysisConfiguration": "fromEnv",
|
"branchAnalysisConfiguration": "fromEnv",
|
||||||
"waitForQualityGate": false
|
"waitForQualityGate": false
|
||||||
},
|
},
|
||||||
|
@@ -1,6 +1,27 @@
|
|||||||
{
|
{
|
||||||
"$schema" : "http://json-schema.org/draft-07/schema#",
|
"$schema" : "http://json-schema.org/draft-07/schema#",
|
||||||
"definitions" : {
|
"definitions" : {
|
||||||
|
"ArchiveInfobaseOptions" : {
|
||||||
|
"type" : "object",
|
||||||
|
"properties" : {
|
||||||
|
"onAlways" : {
|
||||||
|
"type" : "boolean",
|
||||||
|
"description" : "Сохранять всегда"
|
||||||
|
},
|
||||||
|
"onFailure" : {
|
||||||
|
"type" : "boolean",
|
||||||
|
"description" : "Сохранять при падении сборки"
|
||||||
|
},
|
||||||
|
"onSuccess" : {
|
||||||
|
"type" : "boolean",
|
||||||
|
"description" : "Сохранять при успешной сборке"
|
||||||
|
},
|
||||||
|
"onUnstable" : {
|
||||||
|
"type" : "boolean",
|
||||||
|
"description" : "Сохранять при нестабильной сборке"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"EmailExtConfiguration" : {
|
"EmailExtConfiguration" : {
|
||||||
"type" : "object",
|
"type" : "object",
|
||||||
"properties" : {
|
"properties" : {
|
||||||
@@ -28,15 +49,22 @@
|
|||||||
"bdd" : {
|
"bdd" : {
|
||||||
"type" : "object",
|
"type" : "object",
|
||||||
"properties" : {
|
"properties" : {
|
||||||
|
"archiveInfobase" : {
|
||||||
|
"allOf" : [ {
|
||||||
|
"$ref" : "#/definitions/ArchiveInfobaseOptions"
|
||||||
|
}, {
|
||||||
|
"description" : "Настройки сохранения базы после выполнения всех шагов\n "
|
||||||
|
} ]
|
||||||
|
},
|
||||||
"coverage" : {
|
"coverage" : {
|
||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
"description" : "Выполнять замер покрытия",
|
"description" : "Выполнять замер покрытия",
|
||||||
"default" : false
|
"default" : "false"
|
||||||
},
|
},
|
||||||
"dbgsPort" : {
|
"dbgsPort" : {
|
||||||
"type" : "integer",
|
"type" : "integer",
|
||||||
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия",
|
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия",
|
||||||
"default" : 1550
|
"default" : "1550"
|
||||||
},
|
},
|
||||||
"vrunnerSteps" : {
|
"vrunnerSteps" : {
|
||||||
"description" : "Шаги, запускаемые через vrunner.\n В каждой строке передается отдельная команда \n vrunner и ее аргументы (например, \"vanessa --settings ./tools/vrunner.json\").\n По умолчанию содержит одну команду \"vanessa --settings ./tools/vrunner.json\".\n ",
|
"description" : "Шаги, запускаемые через vrunner.\n В каждой строке передается отдельная команда \n vrunner и ее аргументы (например, \"vanessa --settings ./tools/vrunner.json\").\n По умолчанию содержит одну команду \"vanessa --settings ./tools/vrunner.json\".\n ",
|
||||||
@@ -80,6 +108,13 @@
|
|||||||
"type" : "string"
|
"type" : "string"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"archiveInfobase" : {
|
||||||
|
"allOf" : [ {
|
||||||
|
"$ref" : "#/definitions/ArchiveInfobaseOptions"
|
||||||
|
}, {
|
||||||
|
"description" : "Настройки сохранения базы после выполнения всех шагов\n "
|
||||||
|
} ]
|
||||||
|
},
|
||||||
"extensions" : {
|
"extensions" : {
|
||||||
"description" : "Массив расширений для загрузки в конфигурацию.",
|
"description" : "Массив расширений для загрузки в конфигурацию.",
|
||||||
"type" : "array",
|
"type" : "array",
|
||||||
@@ -119,10 +154,6 @@
|
|||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
"description" : "Запустить миграцию ИБ"
|
"description" : "Запустить миграцию ИБ"
|
||||||
},
|
},
|
||||||
"archiveInfobase" : {
|
|
||||||
"type" : "boolean",
|
|
||||||
"description" : "\n Сохранить базу после выполнения всех шагов инициализации\n "
|
|
||||||
},
|
|
||||||
"templateDBPath" : {
|
"templateDBPath" : {
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
"description" : "\n Путь к файлу эталонной базы данных.\n * По умолчанию не заполнен;\n * Указывается путь к файлу *.dt или *.1CD.\n "
|
"description" : "\n Путь к файлу эталонной базы данных.\n * По умолчанию не заполнен;\n * Указывается путь к файлу *.dt или *.1CD.\n "
|
||||||
@@ -254,12 +285,12 @@
|
|||||||
"coverage" : {
|
"coverage" : {
|
||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
"description" : "Выполнять замер покрытия",
|
"description" : "Выполнять замер покрытия",
|
||||||
"default" : false
|
"default" : "false"
|
||||||
},
|
},
|
||||||
"dbgsPort" : {
|
"dbgsPort" : {
|
||||||
"type" : "integer",
|
"type" : "integer",
|
||||||
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия",
|
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия",
|
||||||
"default" : 1550
|
"default" : "1550"
|
||||||
},
|
},
|
||||||
"publishToAllureReport" : {
|
"publishToAllureReport" : {
|
||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
@@ -385,12 +416,12 @@
|
|||||||
"publishToAllureReport" : {
|
"publishToAllureReport" : {
|
||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
"description" : "Выполнять публикацию результатов в отчет Allure.\n По умолчанию выключено.\n ",
|
"description" : "Выполнять публикацию результатов в отчет Allure.\n По умолчанию выключено.\n ",
|
||||||
"default": false
|
"default" : "false"
|
||||||
},
|
},
|
||||||
"publishToJUnitReport" : {
|
"publishToJUnitReport" : {
|
||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
"description" : "Выполнять публикацию результатов в отчет JUnit.\n По умолчанию включено.\n ",
|
"description" : "Выполнять публикацию результатов в отчет JUnit.\n По умолчанию включено.\n ",
|
||||||
"default": true
|
"default" : "true"
|
||||||
},
|
},
|
||||||
"vrunnerSettings" : {
|
"vrunnerSettings" : {
|
||||||
"type" : "string",
|
"type" : "string",
|
||||||
@@ -479,12 +510,12 @@
|
|||||||
"coverage" : {
|
"coverage" : {
|
||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
"description" : "Выполнять замер покрытия",
|
"description" : "Выполнять замер покрытия",
|
||||||
"default" : false
|
"default" : "false"
|
||||||
},
|
},
|
||||||
"dbgsPort" : {
|
"dbgsPort" : {
|
||||||
"type" : "integer",
|
"type" : "integer",
|
||||||
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия",
|
"description" : "Порт, на котором будет запущен сервер отладки для замера покрытия",
|
||||||
"default" : 1550
|
"default" : "1550"
|
||||||
},
|
},
|
||||||
"publishToAllureReport" : {
|
"publishToAllureReport" : {
|
||||||
"type" : "boolean",
|
"type" : "boolean",
|
||||||
|
@@ -33,6 +33,7 @@ public class JobConfigurationSchemaGenerator {
|
|||||||
writer.write(jsonSchema.toPrettyString());
|
writer.write(jsonSchema.toPrettyString());
|
||||||
System.out.println(jsonSchema.toPrettyString());
|
System.out.println(jsonSchema.toPrettyString());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
//noinspection CallToPrintStackTrace
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,31 @@
|
|||||||
|
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 ArchiveInfobaseOptions implements Serializable {
|
||||||
|
|
||||||
|
@JsonPropertyDescription("Сохранять всегда")
|
||||||
|
Boolean onAlways = false
|
||||||
|
@JsonPropertyDescription("Сохранять при успешной сборке")
|
||||||
|
Boolean onSuccess = false
|
||||||
|
@JsonPropertyDescription("Сохранять при падении сборки")
|
||||||
|
Boolean onFailure = false
|
||||||
|
@JsonPropertyDescription("Сохранять при нестабильной сборке")
|
||||||
|
Boolean onUnstable = false
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@NonCPS
|
||||||
|
String toString() {
|
||||||
|
return "ArchiveInfobaseOptions{" +
|
||||||
|
"onAlways=" + onAlways +
|
||||||
|
", onSuccess=" + onSuccess +
|
||||||
|
", onFailure=" + onFailure +
|
||||||
|
", onUnstable=" + onUnstable +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@@ -16,11 +16,16 @@ class BddOptions extends StepCoverageOptions implements Serializable {
|
|||||||
'vanessa --settings ./tools/vrunner.json'
|
'vanessa --settings ./tools/vrunner.json'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@JsonPropertyDescription("""Настройки сохранения базы после выполнения всех шагов
|
||||||
|
""")
|
||||||
|
ArchiveInfobaseOptions archiveInfobase
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@NonCPS
|
@NonCPS
|
||||||
String toString() {
|
String toString() {
|
||||||
return "BddOptions{" +
|
return "BddOptions{" +
|
||||||
"vrunnerSteps=" + vrunnerSteps +
|
"vrunnerSteps=" + vrunnerSteps +
|
||||||
|
"archiveInfobase=" + archiveInfobase +
|
||||||
"coverage=" + coverage +
|
"coverage=" + coverage +
|
||||||
"dbgsPort=" + dbgsPort +
|
"dbgsPort=" + dbgsPort +
|
||||||
'}'
|
'}'
|
||||||
|
@@ -40,10 +40,9 @@ class InitInfoBaseOptions implements Serializable {
|
|||||||
""")
|
""")
|
||||||
String templateDBPath
|
String templateDBPath
|
||||||
|
|
||||||
@JsonPropertyDescription("""
|
@JsonPropertyDescription("""Настройки сохранения базы после выполнения всех шагов
|
||||||
Сохранить базу после выполнения всех шагов инициализации
|
|
||||||
""")
|
""")
|
||||||
Boolean archiveInfobase
|
ArchiveInfobaseOptions archiveInfobase
|
||||||
|
|
||||||
@JsonPropertyDescription("Массив расширений для загрузки в конфигурацию.")
|
@JsonPropertyDescription("Массив расширений для загрузки в конфигурацию.")
|
||||||
Extension[] extensions
|
Extension[] extensions
|
||||||
|
41
src/ru/pulsar/jenkins/library/steps/ZipInfobase.groovy
Normal file
41
src/ru/pulsar/jenkins/library/steps/ZipInfobase.groovy
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
package ru.pulsar.jenkins.library.steps
|
||||||
|
|
||||||
|
import hudson.model.Result
|
||||||
|
import ru.pulsar.jenkins.library.IStepExecutor
|
||||||
|
import ru.pulsar.jenkins.library.configuration.JobConfiguration
|
||||||
|
import ru.pulsar.jenkins.library.ioc.ContextRegistry
|
||||||
|
import ru.pulsar.jenkins.library.utils.Logger
|
||||||
|
|
||||||
|
class ZipInfobase implements Serializable {
|
||||||
|
|
||||||
|
private final JobConfiguration config
|
||||||
|
private final String stage
|
||||||
|
|
||||||
|
ZipInfobase(JobConfiguration config, String stage) {
|
||||||
|
this.config = config
|
||||||
|
this.stage = stage
|
||||||
|
}
|
||||||
|
|
||||||
|
def run() {
|
||||||
|
IStepExecutor steps = ContextRegistry.getContext().getStepExecutor()
|
||||||
|
|
||||||
|
Logger.printLocation()
|
||||||
|
|
||||||
|
def currentBuild = steps.currentBuild()
|
||||||
|
def currentResult = Result.fromString(currentBuild.getCurrentResult())
|
||||||
|
|
||||||
|
def archiveInfobaseOptions = options.archiveInfobase
|
||||||
|
|
||||||
|
def archiveInfobase = false
|
||||||
|
if (archiveInfobaseOptions.onAlways
|
||||||
|
|| (archiveInfobaseOptions.onFailure && (currentResult == Result.FAILURE || currentResult == Result.ABORTED))
|
||||||
|
|| (archiveInfobaseOptions.onUnstable && currentResult == Result.UNSTABLE)
|
||||||
|
|| (archiveInfobaseOptions.onSuccess && currentResult == Result.SUCCESS)) {
|
||||||
|
archiveInfobase = true
|
||||||
|
}
|
||||||
|
|
||||||
|
def archiveName = "1Cv8.1CD.${stage}.zip"
|
||||||
|
steps.zip('build/ib', '1Cv8.1CD', archiveName, archiveInfobase)
|
||||||
|
steps.stash(archiveName, archiveName, false)
|
||||||
|
}
|
||||||
|
}
|
@@ -144,7 +144,7 @@ void call() {
|
|||||||
timeout(time: config.timeoutOptions.zipInfoBase, unit: TimeUnit.MINUTES) {
|
timeout(time: config.timeoutOptions.zipInfoBase, unit: TimeUnit.MINUTES) {
|
||||||
printLocation()
|
printLocation()
|
||||||
|
|
||||||
zipInfobase(config)
|
zipInfobase config, 'initInfobase'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,10 @@
|
|||||||
import ru.pulsar.jenkins.library.configuration.JobConfiguration
|
import ru.pulsar.jenkins.library.configuration.JobConfiguration
|
||||||
|
import ru.pulsar.jenkins.library.ioc.ContextRegistry
|
||||||
|
import ru.pulsar.jenkins.library.steps.ZipInfobase
|
||||||
|
|
||||||
def call(JobConfiguration config) {
|
def call(JobConfiguration config, String stageName) {
|
||||||
|
ContextRegistry.registerDefaultContext(this)
|
||||||
def archiveName = '1Cv8.1CD.zip'
|
|
||||||
|
|
||||||
zip dir: 'build/ib', glob: '1Cv8.1CD', zipFile: archiveName, archive: config.initInfoBaseOptions.archiveInfobase
|
|
||||||
stash name: archiveName, includes: archiveName, allowEmpty: false
|
|
||||||
|
|
||||||
|
def zipInfobase = new ZipInfobase(config, stageName)
|
||||||
|
zipInfobase.run()
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user