1
0
mirror of https://github.com/firstBitMarksistskaya/jenkins-lib.git synced 2024-11-24 08:52:14 +02:00

Fix #11. Поиск файлов vrunner.init.json для запуска первичной инициализации

This commit is contained in:
Nikita Gryzlov 2021-06-11 17:17:02 +03:00
parent 5c45859240
commit 0a91cc35c2
No known key found for this signature in database
GPG Key ID: E7AE91471C6FFE04
5 changed files with 27 additions and 5 deletions

View File

@ -107,9 +107,10 @@ pipeline1C()
* `STORAGE_PATH` - путь к хранилищу конфигурации;
* `STORAGE_USER` - параметры авторизации в хранилище вида "username with password".
* Все "шаги" по умолчанию выключены.
* Результаты в формате `allure` ожидаются в каталоге `build/out/allure` или его подкаталогах.
* Инициализация:
* Если включен шаг `initSteps`, то будет выполняться запуск ИБ с целью запуска обработчиков обновления из БСП. (`initInfobase` -> `runMigration`)
* TODO: Если в настройках шага инициализации не заполнен массив дополнительных шагов миграции (`initInfobase` -> `additionalInitializationSteps`), но в каталоге `tools` присутствуют файлы с именами, удовлетворяющими шаблону `vrunner.init*.json`, то автоматически выполняется запуск `vrunner vanessa` с передачей найденных файлов в качестве значения настроек (параметр `--settings`) в порядке лексиграфической сортировки имен файлов.
* Если в настройках шага инициализации не заполнен массив дополнительных шагов миграции (`initInfobase` -> `additionalInitializationSteps`), но в каталоге `tools` присутствуют файлы с именами, удовлетворяющими шаблону `vrunner.init*.json`, то автоматически выполняется запуск `vrunner vanessa` с передачей найденных файлов в качестве значения настроек (параметр `--settings`) в порядке лексиграфической сортировки имен файлов.
* BDD:
* Если в конфигурационном файле проекта не заполнена настройка `bdd` -> `vrunnerSteps`, то автоматически выполняется запуск `vrunner vanessa --settings tools/vrunner.json`.
* Синтаксический контроль:

View File

@ -78,6 +78,7 @@ sharedLibrary {
// TODO: retrieve downloaded plugin resource
pluginDependencies {
dependency("org.jenkins-ci.plugins", "pipeline-build-step", "2.12")
dependency("org.jenkins-ci.plugins", "pipeline-utility-steps", "2.8.0")
dependency("org.jenkins-ci.plugins", "git", "4.4.4")
dependency("org.6wind.jenkins", "lockable-resources", "2.7")
dependency("ru.yandex.qatools.allure", "allure-jenkins-plugin", "2.28.1")

View File

@ -1,5 +1,6 @@
package ru.pulsar.jenkins.library
import org.jenkinsci.plugins.pipeline.utility.steps.fs.FileWrapper
import org.jenkinsci.plugins.workflow.support.actions.EnvironmentAction
interface IStepExecutor {
@ -12,6 +13,10 @@ interface IStepExecutor {
String libraryResource(String path)
FileWrapper[] findFiles(String glob)
FileWrapper[] findFiles(String glob, String excludes)
String readFile(String file, String encoding)
void echo(message)

View File

@ -1,6 +1,6 @@
package ru.pulsar.jenkins.library
import org.jenkinsci.plugins.pipeline.utility.steps.fs.FileWrapper
import org.jenkinsci.plugins.workflow.support.actions.EnvironmentAction
import ru.yandex.qatools.allure.jenkins.config.ResultsConfig
@ -37,6 +37,11 @@ class StepExecutor implements IStepExecutor {
steps.readFile encoding: encoding, file: file
}
@Override
FileWrapper[] findFiles(String glob, String excludes = '') {
steps.findFiles glob: glob, excludes: excludes
}
@Override
void echo(Object message) {
steps.echo message

View File

@ -1,5 +1,6 @@
package ru.pulsar.jenkins.library.steps
import org.jenkinsci.plugins.pipeline.utility.steps.fs.FileWrapper
import ru.pulsar.jenkins.library.IStepExecutor
import ru.pulsar.jenkins.library.configuration.JobConfiguration
import ru.pulsar.jenkins.library.ioc.ContextRegistry
@ -46,9 +47,18 @@ class InitInfobase implements Serializable {
}
steps.catchError {
config.initInfobaseOptions.additionalInitializationSteps.each {
Logger.println("Первичная инициализация командой ${it}")
steps.cmd("oscript_modules/bin/vrunner ${it} --ibconnection \"/F./build/ib\"")
if (config.initInfobaseOptions.additionalInitializationSteps.length == 0) {
FileWrapper[] files = steps.findFiles("tools/vrunner.init*.json")
files = files.sort new OrderBy( { it.name })
files.each {
Logger.println("Первичная инициализация файлом ${it.path}")
steps.cmd("oscript_modules/bin/vrunner vanessa --settings ${it.path} --ibconnection \"/F./build/ib\"")
}
} else {
config.initInfobaseOptions.additionalInitializationSteps.each {
Logger.println("Первичная инициализация командой ${it}")
steps.cmd("oscript_modules/bin/vrunner ${it} --ibconnection \"/F./build/ib\"")
}
}
}
}