diff --git a/src/ru/pulsar/jenkins/library/configuration/StageFlags.groovy b/src/ru/pulsar/jenkins/library/configuration/StageFlags.groovy index d7d70b0..618c255 100644 --- a/src/ru/pulsar/jenkins/library/configuration/StageFlags.groovy +++ b/src/ru/pulsar/jenkins/library/configuration/StageFlags.groovy @@ -44,4 +44,8 @@ class StageFlags implements Serializable { boolean needInfobase() { return smoke || syntaxCheck || initSteps || bdd || srcEDT } + + boolean infobaseFromFiles() { + return srcEDT + } } diff --git a/src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy b/src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy new file mode 100644 index 0000000..dbbf975 --- /dev/null +++ b/src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy @@ -0,0 +1,38 @@ +package ru.pulsar.jenkins.library.steps + +import ru.pulsar.jenkins.library.IStepExecutor +import ru.pulsar.jenkins.library.ioc.ContextRegistry +import ru.pulsar.jenkins.library.utils.Logger + +class InitFromFiles implements Serializable { + + private final JobConfiguration config; + + InitFromFiles(JobConfiguration config) { + this.config = config + } + + def run() { + IStepExecutor steps = ContextRegistry.getContext().getStepExecutor() + + Logger.printLocation() + + if (!config.stageFlags.infobaseFromFiles()) { + Logger.println("init infoBase from files is disabled") + return + } + + Logger.println("Распаковка файлов") + + def env = steps.env(); + + def srcDir = "$env.WORKSPACE/$EdtBackTransform.CONFIGURATION_DIR" + + steps.unstash(EdtBackTransform.CONFIGURATION_ZIP_STASH) + steps.unzip(srcDir, EdtBackTransform.CONFIGURATION_ZIP) + + Logger.println("Выполнение загрузки конфигурации из файлов") + def initCommand = "oscript_modules/bin/vrunner init-dev --src $srcDir --ibconnection \"/F./build/ib\"" + steps.cmd(initCommand) + } +} diff --git a/vars/initFromFiles.groovy b/vars/initFromFiles.groovy new file mode 100644 index 0000000..ea0779b --- /dev/null +++ b/vars/initFromFiles.groovy @@ -0,0 +1,10 @@ +import ru.pulsar.jenkins.library.configuration.JobConfiguration +import ru.pulsar.jenkins.library.ioc.ContextRegistry +import ru.pulsar.jenkins.library.steps.InitFromFiles + +def call(JobConfiguration config) { + ContextRegistry.registerDefaultContext(this) + + def initFromFiles = new InitFromFiles(config) + initFromFiles.run() +} \ No newline at end of file diff --git a/vars/pipeline1C.groovy b/vars/pipeline1C.groovy index 64e6f94..c11e8f9 100644 --- a/vars/pipeline1C.groovy +++ b/vars/pipeline1C.groovy @@ -72,8 +72,14 @@ void call() { createDir('build/out') - // Создание базы загрузкой конфигурации из хранилища - initFromStorage config + if (config.stageFlags.infobaseFromFiles()){ + // Создание базы загрузкой из файлов + initFromFiles config + } + else{ + // Создание базы загрузкой конфигурации из хранилища + initFromStorage config + } } } @@ -106,7 +112,7 @@ void call() { } when { beforeAgent true - expression { config.stageFlags.edtValidate } + expression { config.stageFlags.edtValidate && !config.stageFlags.srcEDT} } steps { edtTransform config