diff --git a/README.md b/README.md index 9ccab43..e52120e 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ pipeline1C() ## Внешний вид пайплайна в интерфейсе Blue Ocean -![image](https://github.com/firstBitMarksistskaya/jenkins-lib/assets/80944823/e34a0112-2fe5-4116-92ac-8fcca08bba43) +![image](https://github.com/firstBitMarksistskaya/jenkins-lib/assets/80944823/a8d5bdff-3267-4744-a613-8c3d445b767f) ## Конфигурирование diff --git a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy index 05222ce..acf5bac 100644 --- a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy @@ -72,6 +72,8 @@ interface IStepExecutor { def unstash(String name) + def unstable(String message) + def zip(String dir, String zipFile) def zip(String dir, String zipFile, String glob) diff --git a/src/ru/pulsar/jenkins/library/StepExecutor.groovy b/src/ru/pulsar/jenkins/library/StepExecutor.groovy index 1995ebb..e259934 100644 --- a/src/ru/pulsar/jenkins/library/StepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/StepExecutor.groovy @@ -159,6 +159,11 @@ class StepExecutor implements IStepExecutor { steps.unstash name } + @Override + def unstable(String message) { + steps.unstable message + } + @Override def zip(String dir, String zipFile, String glob = '') { steps.zip dir: dir, zipFile: zipFile, glob: glob, overwrite: true diff --git a/src/ru/pulsar/jenkins/library/steps/Bdd.groovy b/src/ru/pulsar/jenkins/library/steps/Bdd.groovy index 454b4c4..8bb41c2 100644 --- a/src/ru/pulsar/jenkins/library/steps/Bdd.groovy +++ b/src/ru/pulsar/jenkins/library/steps/Bdd.groovy @@ -8,7 +8,7 @@ import ru.pulsar.jenkins.library.utils.VRunner class Bdd implements Serializable { - private final JobConfiguration config; + private final JobConfiguration config Bdd(JobConfiguration config) { this.config = config @@ -27,15 +27,21 @@ class Bdd implements Serializable { List logosConfig = ["LOGOS_CONFIG=$config.logosConfig"] steps.withEnv(logosConfig) { steps.installLocalDependencies() - steps.createDir('build/out') + List returnStatuses = [] + config.bddOptions.vrunnerSteps.each { + Logger.println("Шаг запуска сценариев командой ${it}") + String vrunnerPath = VRunner.getVRunnerPath() + Integer bddReturnStatus = VRunner.exec("$vrunnerPath ${it} --ibconnection \"/F./build/ib\"", true) + returnStatuses.add(bddReturnStatus) + } - steps.catchError { - config.bddOptions.vrunnerSteps.each { - Logger.println("Шаг запуска сценариев командой ${it}") - String vrunnerPath = VRunner.getVRunnerPath(); - VRunner.exec("$vrunnerPath ${it} --ibconnection \"/F./build/ib\"") - } + if (Collections.max(returnStatuses) > 2) { + steps.error("Получен неожиданный/неверный результат работы. Возможно, работа 1С:Предприятие завершилась некорректно, или возникла ошибка при запуске") + } else if (returnStatuses.contains(1)) { + steps.unstable("Тестирование сценариев завершилось, но часть фич/сценариев упала") + } else { + Logger.println("Тестирование сценариев завершилось успешно") } } diff --git a/vars/pipeline1C.groovy b/vars/pipeline1C.groovy index 1cd323b..731e9ee 100644 --- a/vars/pipeline1C.groovy +++ b/vars/pipeline1C.groovy @@ -106,6 +106,18 @@ void call() { } } + stage('Загрузка расширений в конфигурацию'){ + when { + beforeAgent true + expression { config.needLoadExtensions() } + } + steps { + timeout(time: config.timeoutOptions.loadExtensions, unit: TimeUnit.MINUTES) { + loadExtensions config + } + } + } + stage('Инициализация ИБ') { when { beforeAgent true @@ -119,17 +131,6 @@ void call() { } } - stage('Загрузка расширений в конфигурацию'){ - when { - beforeAgent true - expression { config.needLoadExtensions() } - } - steps { - timeout(time: config.timeoutOptions.loadExtensions, unit: TimeUnit.MINUTES) { - loadExtensions config - } - } - } stage('Архивация ИБ') { steps {