From 2a666a10db5dffe2bad85856c0df4db14561a058 Mon Sep 17 00:00:00 2001 From: kuzja086 Date: Tue, 3 Aug 2021 23:11:01 +0500 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D0=BE?= =?UTF-8?q?=D1=82=D0=B4=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=20=D0=B4=D0=BB=D1=8F=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D0=B2=D0=B5=D1=80=D1=82=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=D0=B7?= =?UTF-8?q?=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B0=20EDT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../library/steps/EdtBackTransform.groovy | 52 +++++++++++++++++++ vars/edtBackTransform.groovy | 10 ++++ 2 files changed, 62 insertions(+) create mode 100644 src/ru/pulsar/jenkins/library/steps/EdtBackTransform.groovy create mode 100644 vars/edtBackTransform.groovy diff --git a/src/ru/pulsar/jenkins/library/steps/EdtBackTransform.groovy b/src/ru/pulsar/jenkins/library/steps/EdtBackTransform.groovy new file mode 100644 index 0000000..a21efda --- /dev/null +++ b/src/ru/pulsar/jenkins/library/steps/EdtBackTransform.groovy @@ -0,0 +1,52 @@ +package ru.pulsar.jenkins.library.steps + + +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 EdtBackTransform implements Serializable { + + public static final String PROJECT_NAME = 'pb17' // TODO Брать из srcDir + public static final String WORKSPACE = 'build/edt-workspace' + public static final String CONFIGURATION_ZIP = 'build/cfgPath.zip' + public static final String CONFIGURATION_ZIP_STASH = 'cfgPath-zip' + + private final JobConfiguration config; + + EdtBackTransform(JobConfiguration config) { + this.config = config + } + + def run() { + IStepExecutor steps = ContextRegistry.getContext().getStepExecutor() + + Logger.printLocation() + + if (!config.stageFlags.srcEDT) { + Logger.println("SRC is not EDT format. No transform is needed.") + return + } + + def env = steps.env(); + + def workspaceDir = "$env.WORKSPACE/$WORKSPACE" + def configurationRoot = config.srcDir + + steps.createDir(workspaceDir) + + Logger.println("Конвертация исходников из формата EDT в формат Конфигуратора") + + def ringCommand = "ring edt workspace export --configuration-files '$configurationRoot' --project-name $PROJECT_NAME --workspace-location '$workspaceDir'" + + def ringOpts = ['RING_OPTS=-Dfile.encoding=UTF-8 -Dosgi.nl=ru -Duser.language=ru'] + steps.withEnv(ringOpts) { + steps.cmd(ringCommand) + } + + steps.zip(WORKSPACE, CONFIGURATION_ZIP) + steps.stash(CONFIGURATION_ZIP_STASH, CONFIGURATION_ZIP) + } + +} diff --git a/vars/edtBackTransform.groovy b/vars/edtBackTransform.groovy new file mode 100644 index 0000000..d81d7a0 --- /dev/null +++ b/vars/edtBackTransform.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.EdtBackTransform + +def call(JobConfiguration config) { + ContextRegistry.registerDefaultContext(this) + + def edtBackTransform = new EdtBackTransform(config) + edtBackTransform.run() +}