From 5660e0c4bf84c6d00de7202a26c31468a14a3cde Mon Sep 17 00:00:00 2001 From: Dima Date: Sun, 22 Dec 2024 14:38:22 +0300 Subject: [PATCH] add archiveInfobase --- resources/globalConfiguration.json | 1 + resources/schema.json | 4 ++++ .../pulsar/jenkins/library/IStepExecutor.groovy | 2 ++ src/ru/pulsar/jenkins/library/StepExecutor.groovy | 5 +++++ .../configuration/InitInfoBaseOptions.groovy | 6 ++++++ vars/pipeline1C.groovy | 2 +- vars/zipInfobase.groovy | 15 +++++++++------ 7 files changed, 28 insertions(+), 7 deletions(-) diff --git a/resources/globalConfiguration.json b/resources/globalConfiguration.json index 82688c9..83cfe2d 100644 --- a/resources/globalConfiguration.json +++ b/resources/globalConfiguration.json @@ -45,6 +45,7 @@ "additionalInitializationSteps": [], "templateDBPath": "", "vrunnerSettings": "./tools/vrunner.json", + "archiveInfobase": false, "extensions": [] }, "bdd": { diff --git a/resources/schema.json b/resources/schema.json index cae865f..99a9fc0 100644 --- a/resources/schema.json +++ b/resources/schema.json @@ -119,6 +119,10 @@ "type" : "boolean", "description" : "Запустить миграцию ИБ" }, + "archiveInfobase" : { + "type" : "boolean", + "description" : "\n Сохранить базу после выполнения всех шагов инициализации\n " + }, "templateDBPath" : { "type" : "string", "description" : "\n Путь к файлу эталонной базы данных.\n * По умолчанию не заполнен;\n * Указывается путь к файлу *.dt или *.1CD.\n " diff --git a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy index 8a2f6e8..d0f6598 100644 --- a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy @@ -89,6 +89,8 @@ interface IStepExecutor { @SuppressWarnings('unused') def zip(String dir, String zipFile, String glob) + def zip(String dir, String zipFile, String glob, boolean archive) + def unzip(String dir, String zipFile) @SuppressWarnings('unused') diff --git a/src/ru/pulsar/jenkins/library/StepExecutor.groovy b/src/ru/pulsar/jenkins/library/StepExecutor.groovy index d02bbfc..b5ec920 100644 --- a/src/ru/pulsar/jenkins/library/StepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/StepExecutor.groovy @@ -196,6 +196,11 @@ class StepExecutor implements IStepExecutor { steps.zip dir: dir, zipFile: zipFile, glob: glob, overwrite: true } + @Override + def zip(String dir, String zipFile, String glob = '', boolean archive) { + steps.zip dir: dir, zipFile: zipFile, glob: glob, overwrite: true, archive: archive + } + @Override def unzip(String dir, String zipFile, quiet = true) { steps.unzip dir: dir, zipFile: zipFile, quiet: quiet diff --git a/src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy b/src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy index 32f7ca9..aaaa8ed 100644 --- a/src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy +++ b/src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy @@ -40,6 +40,11 @@ class InitInfoBaseOptions implements Serializable { """) String templateDBPath + @JsonPropertyDescription(""" + Сохранить базу после выполнения всех шагов инициализации + """) + Boolean archiveInfobase + @JsonPropertyDescription("Массив расширений для загрузки в конфигурацию.") Extension[] extensions @@ -80,6 +85,7 @@ class InitInfoBaseOptions implements Serializable { ", vrunnerSettings=" + vrunnerSettings + ", templateDBPath=" + templateDBPath + ", additionalInitializationSteps=" + additionalInitializationSteps + + ", archiveInfobase=" + archiveInfobase + ", extensions=" + extensions + '}' } diff --git a/vars/pipeline1C.groovy b/vars/pipeline1C.groovy index fbd5444..da95889 100644 --- a/vars/pipeline1C.groovy +++ b/vars/pipeline1C.groovy @@ -144,7 +144,7 @@ void call() { timeout(time: config.timeoutOptions.zipInfoBase, unit: TimeUnit.MINUTES) { printLocation() - zipInfobase() + zipInfobase(config) } } } diff --git a/vars/zipInfobase.groovy b/vars/zipInfobase.groovy index 14bc94a..0f91871 100644 --- a/vars/zipInfobase.groovy +++ b/vars/zipInfobase.groovy @@ -1,7 +1,10 @@ -def call() { - if (fileExists('1Cv8.1CD.zip')) { - fileOperations([fileDeleteOperation(includes: '1Cv8.1CD.zip')]) - } - zip dir: 'build/ib', glob: '1Cv8.1CD', zipFile: '1Cv8.1CD.zip' - stash name: "1Cv8.1CD.zip", includes: "1Cv8.1CD.zip", allowEmpty: false +import ru.pulsar.jenkins.library.configuration.JobConfiguration + +def call(JobConfiguration config) { + + 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 + }