diff --git a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy index e9f9cb5..d56ddf5 100644 --- a/src/ru/pulsar/jenkins/library/IStepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/IStepExecutor.groovy @@ -70,6 +70,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 e8ffe04..fb8c212 100644 --- a/src/ru/pulsar/jenkins/library/StepExecutor.groovy +++ b/src/ru/pulsar/jenkins/library/StepExecutor.groovy @@ -154,6 +154,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("Тестирование сценариев завершилось успешно") } }