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

Форматирование.

Убрал лишний перенос строки.
Добавил функционал для скачивания по локальному пути.
This commit is contained in:
ivanovEV 2024-03-14 18:51:06 +03:00
parent 9f81e09faa
commit 3d51a22f3c
4 changed files with 52 additions and 24 deletions

View File

@ -128,21 +128,6 @@ pipeline1C()
* Если информационная база нужна для запуска в режиме "Предприятие" (например, для шагов `bdd` или `smoke`), то будет запущен шаг "Миграция ИБ". * Если информационная база нужна для запуска в режиме "Предприятие" (например, для шагов `bdd` или `smoke`), то будет запущен шаг "Миграция ИБ".
* После загрузки конфигурации в ИБ будет выполняться запуск ИБ с целью запуска обработчиков обновления из БСП (`initInfobase` -> `runMigration`). * После загрузки конфигурации в ИБ будет выполняться запуск ИБ с целью запуска обработчиков обновления из БСП (`initInfobase` -> `runMigration`).
* Если в настройках шага инициализации не заполнен массив дополнительных шагов миграции (`initInfobase` -> `additionalInitializationSteps`), но в каталоге `tools` присутствуют файлы с именами, удовлетворяющими шаблону `vrunner.init*.json`, то автоматически выполняется запуск `vrunner vanessa` с передачей найденных файлов в качестве значения настроек (параметр `--settings`) в порядке лексикографической сортировки имен файлов. * Если в настройках шага инициализации не заполнен массив дополнительных шагов миграции (`initInfobase` -> `additionalInitializationSteps`), но в каталоге `tools` присутствуют файлы с именами, удовлетворяющими шаблону `vrunner.init*.json`, то автоматически выполняется запуск `vrunner vanessa` с передачей найденных файлов в качестве значения настроек (параметр `--settings`) в порядке лексикографической сортировки имен файлов.
* Загрузка расширений в информационную базу
* Если у вас есть расширения которые необходимо загрузить в базу для проведения тестов и проверок, это можно сделать на этапе подготовки базы.
* При загрузке из исходников расширения должны быть в том же формате(edt или конфигуратора) что и основная конфигурация.
* Для загрузки расширений необходимо описать каждое из них в массиве (`initInfobase` -> `extensions`)
* Для каждого из расширений необходимо указать:
* Имя (`extensions` -> `name`)
* Способ получения (`extensions` -> `initMethod`)
Сейчас поддерживаются 2 варианта:
* Из исходников(`fromSource`);
* Скачать cfe-файл из интернета (`fromInternet`)
* Путь до расширения (`extensions` -> `path`)
* В случае загрузки из исходников - необходимо указать путь к исходникам расширения
* В случае загрузки из интернета - Укажите url по которому будет скачан cfe(Прим.: https://github.com/bia-technologies/yaxunit/releases/download/23.05/YAXUNIT-23.05.cfe)
* BDD: * BDD:
* Если в конфигурационном файле проекта не заполнена настройка `bdd` -> `vrunnerSteps`, то автоматически выполняется запуск `vrunner vanessa --settings tools/vrunner.json`. * Если в конфигурационном файле проекта не заполнена настройка `bdd` -> `vrunnerSteps`, то автоматически выполняется запуск `vrunner vanessa --settings tools/vrunner.json`.
* Дымовые тесты: * Дымовые тесты:
@ -180,3 +165,37 @@ pipeline1C()
* Прямые получатели уведомлений не заполнены (`notifications` -> `email` -> `*options` -> `directRecipients`). * Прямые получатели уведомлений не заполнены (`notifications` -> `email` -> `*options` -> `directRecipients`).
* Telegram: * Telegram:
* Уведомления о результатах сборки по умолчанию рассылаются всегда (`notifications` -> `telegram` -> `onAlways`, `onFailure`, `onUnstable`, `onSuccess`). * Уведомления о результатах сборки по умолчанию рассылаются всегда (`notifications` -> `telegram` -> `onAlways`, `onFailure`, `onUnstable`, `onSuccess`).
## Конфигурирование загрузки расширений
Если у вас есть расширения которые необходимо загрузить в базу для проведения тестов и проверок, это можно сделать на этапе подготовки базы.
* При загрузке из исходников расширения должны быть в том же формате(edt или конфигуратора) что и основная конфигурация.
* Для загрузки расширений необходимо описать каждое из них в массиве (`initInfobase` -> `extensions`)
Для загрузки расширений в информационную базу необходимо выполнить следующие шаги:
1. Укажите имя расширения(`extensions` -> `name`).
1. Определите метод загрузки для каждого расширения(`extensions` -> `initMethod`). Поддерживаются два метода загрузки:
- `fromSource` - загрузка из исходников;
- `fromFile` - загрузка cfe-файла.
1. Укажите путь до расширения или URL для скачивания cfe-файла(`extensions` -> `path`).
- В случае загрузки из исходников - необходимо указать путь к исходникам расширения
- В случае загрузки cfe - Укажите путь по которому будет скачан cfe. На данный момент можно указывать как локальный путь, так и url для скачивания cfe(Прим.: https://github.com/bia-technologies/yaxunit/releases/download/23.05/YAXUNIT-23.05.cfe)
Пример конфигурации для загрузки расширений:
```json
"initInfobase": {
"extensions": [
{
"name": "ИмяРасширения1",
"initMethod": "fromSource",
"path": "путь/до/исходников/расширения"
},
{
"name": "ИмяРасширения2",
"initMethod": "fromFile",
"path": "https://example.com/path/to/extension.cfe"
}
]
}
```

View File

@ -179,12 +179,12 @@
}, },
"initMethod": { "initMethod": {
"type": "string", "type": "string",
"description": "\n Способ инициализации расширения.\n Поддерживается два варианта:\n * fromSource - инициализация расширения из исходников;\n * fromInternet - скачивание скомпилированного cfe по ссылке.", "description": "\n Способ инициализации расширения.\n Поддерживается два варианта:\n * fromSource - инициализация расширения из исходников;\n * fromFile - использование скомпилированного cfe.",
"enum": ["fromSource", "fromInternet"] "enum": ["fromSource", "fromFile"]
}, },
"path": { "path": {
"type": "string", "type": "string",
"description": "Хранит в себе путь к расширению.\n * В случае если выбран initMethod <fromSource> - указывается путь к исходникам расширения.\n * В случае если выбран initMethod <fromInternet> - указывается ссылка на cfe-файл" "description": "Хранит в себе путь к расширению.\n * В случае если выбран initMethod <fromSource> - указывается путь к исходникам расширения.\n * В случае если выбран initMethod <fromFile> - указывается путь к cfe-файлу"
} }
} }
} }

View File

@ -6,7 +6,7 @@ enum InitExtensionMethod {
@JsonProperty("fromSource") @JsonProperty("fromSource")
SOURCE, SOURCE,
@JsonProperty("fromInternet") @JsonProperty("fromFile")
INTERNET FILE
} }

View File

@ -37,8 +37,7 @@ class GetExtensions implements Serializable {
String sourceDirName = "" String sourceDirName = ""
if (config.sourceFormat == SourceFormat.EDT) { if (config.sourceFormat == SourceFormat.EDT) {
sourceDirName = "$env.WORKSPACE/$EdtToDesignerFormatTransformation.EXTENSION_DIR" sourceDirName = "$env.WORKSPACE/$EdtToDesignerFormatTransformation.EXTENSION_DIR"
} } else {
else {
sourceDirName = "$env.WORKSPACE" sourceDirName = "$env.WORKSPACE"
} }
extractConvertedExtensions(sourceDirName, steps) extractConvertedExtensions(sourceDirName, steps)
@ -48,9 +47,11 @@ class GetExtensions implements Serializable {
Logger.println("Сборка расширения ${it.name} из исходников") Logger.println("Сборка расширения ${it.name} из исходников")
String srcDir = getSrcDir(it, sourceDirName) String srcDir = getSrcDir(it, sourceDirName)
buildExtension(it, srcDir, vrunnerPath, steps) buildExtension(it, srcDir, vrunnerPath, steps)
} else { } elseif (it.initMethod == InitExtensionMethod.FILE){
Logger.println("Загрузка расширения ${it.name} из интернета по ссылке ${it.path}") Logger.println("Загрузка расширения ${it.name} из интернета по ссылке ${it.path}")
loadExtension(it, env) loadExtension(it, env)
} else {
Logger.println("Неизвестный метод инициализации расширения ${it.name}")
} }
} }
} }
@ -70,7 +71,15 @@ class GetExtensions implements Serializable {
private void loadExtension(Extension extension, def env) { private void loadExtension(Extension extension, def env) {
String pathToExtension = "$env.WORKSPACE/${EXTENSIONS_OUT_DIR}/${extension.name}.cfe" String pathToExtension = "$env.WORKSPACE/${EXTENSIONS_OUT_DIR}/${extension.name}.cfe"
FilePath localPathToExtension = FileUtils.getFilePath(pathToExtension) FilePath localPathToExtension = FileUtils.getFilePath(pathToExtension)
localPathToExtension.copyFrom(new URL(extension.path))
if (extension.path.startsWith("http")) {
// If the path is a URL, download the file
localPathToExtension.copyFrom(new URL(extension.path))
} else {
// If the path is a local file, copy the file
FilePath localFilePath = FileUtils.getFilePath(extension.path)
localPathToExtension.copyFrom(localFilePath.toURI().toURL())
}
} }