Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Загрузка расширений в конфигурацию для прогона тестов. #104

Merged
merged 79 commits into from
Mar 17, 2024
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
f864660
Добавил загрузку расширений в конфу.
Jan 19, 2024
c70b461
Допиал ридми
Jan 19, 2024
b2a7aee
Для тестов но наугад.
Jan 19, 2024
20c4bcc
add filter
Jan 19, 2024
e512a03
Поправил ридми
Jan 22, 2024
4d7efed
Поменял хак на нормальный метод.
Jan 22, 2024
ea96d97
В предыдущей итерации не работает, возможно создается абсолютный путь…
Jan 22, 2024
ea98885
В предыдущей итерации не работает, возможно создается абсолютный путь…
Jan 22, 2024
9f279c0
Нет, так тоже не работает )
Jan 22, 2024
c2d9a20
Добавлен deleteDir() для типа FilePath
Feb 20, 2024
5088976
Squashed commit of the following:
Feb 20, 2024
ca6a31e
Merge branch 'develop' into develop
Segate-ekb Feb 20, 2024
4aa5070
Фиксы части замечаний
Feb 20, 2024
476bab0
Merge remote-tracking branch 'origin/develop' into develop
Feb 20, 2024
5eb94cb
Фиксы части замечаний
Feb 20, 2024
1140af1
ренейм initMethod -> InitExtentionMethod
Feb 20, 2024
cfa9d47
Фикс зависимостей
Feb 20, 2024
4fe9a0c
Сменил кавычки в тесте
Feb 20, 2024
262cd7a
Merge pull request #111 from ivanmolodec/develop
nixel2007 Feb 20, 2024
9f03c79
Исправление опечатки
Feb 26, 2024
6ac28af
Edt transformation fix (#2)
ivanmolodec Mar 1, 2024
d73b9a9
Добавление шага ringCommand
Mar 6, 2024
0fd8cae
Смена шага cmd на ringCommand
Mar 6, 2024
bef4a4e
Рефакторинг для перехода на ringCommand
Mar 7, 2024
ad528ca
Merge pull request #113 from ivanmolodec/develop
nixel2007 Mar 9, 2024
9a40360
Update src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOption…
Segate-ekb Mar 14, 2024
1549b21
Update vars/pipeline1C.groovy
Segate-ekb Mar 14, 2024
5074264
Update src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOption…
Segate-ekb Mar 14, 2024
46cd1ee
Update src/ru/pulsar/jenkins/library/steps/EdtToDesignerFormatTransfo…
Segate-ekb Mar 14, 2024
9347ab5
Update src/ru/pulsar/jenkins/library/steps/EdtToDesignerFormatTransfo…
Segate-ekb Mar 14, 2024
25bc817
Форматирование.
Mar 14, 2024
237f27b
Merge remote-tracking branch 'origin/develop' into develop
Mar 14, 2024
ce77557
small fix
Mar 14, 2024
93af3ff
typo
Mar 14, 2024
626333a
замена . на WORKSPACE
Mar 14, 2024
c30558c
тест
Mar 14, 2024
2200c8d
заменил http на isvalidurl
Mar 14, 2024
569eba5
Фикс грязного хака
Mar 14, 2024
09b885b
Зменил проверку . на ./
Mar 14, 2024
1995174
тест
Mar 14, 2024
923725a
Добавил приведение к абсолютному пути.
Mar 14, 2024
3168937
fix
Mar 14, 2024
21538ea
small fixes
Mar 14, 2024
94887b4
Обновил картинку в ридми
Mar 14, 2024
aafa4a4
добавил в описание возможностей
Mar 15, 2024
1aae48b
Добавил загрузку расширений в конфу.
Jan 19, 2024
0bed554
Допиал ридми
Jan 19, 2024
dc1c14d
Для тестов но наугад.
Jan 19, 2024
819b19b
add filter
Jan 19, 2024
7d16c50
Поправил ридми
Jan 22, 2024
276c54a
Поменял хак на нормальный метод.
Jan 22, 2024
0049cd6
В предыдущей итерации не работает, возможно создается абсолютный путь…
Jan 22, 2024
3fcd5ce
В предыдущей итерации не работает, возможно создается абсолютный путь…
Jan 22, 2024
3b3593b
Нет, так тоже не работает )
Jan 22, 2024
4f353a3
Фиксы части замечаний
Feb 20, 2024
c0f4ab8
Фиксы части замечаний
Feb 20, 2024
7714b4b
ренейм initMethod -> InitExtentionMethod
Feb 20, 2024
d9c273a
Фикс зависимостей
Feb 20, 2024
c36861e
Сменил кавычки в тесте
Feb 20, 2024
870d537
Исправление опечатки
Feb 26, 2024
544e6da
Update src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOption…
Segate-ekb Mar 14, 2024
080594e
Update vars/pipeline1C.groovy
Segate-ekb Mar 14, 2024
9f81e09
Update src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOption…
Segate-ekb Mar 14, 2024
3d51a22
Форматирование.
Mar 14, 2024
5d58803
Update src/ru/pulsar/jenkins/library/steps/EdtToDesignerFormatTransfo…
Segate-ekb Mar 14, 2024
405ab76
small fix
Mar 14, 2024
0f758ce
typo
Mar 14, 2024
9316311
замена . на WORKSPACE
Mar 14, 2024
2bfb7c8
тест
Mar 14, 2024
8b9f047
заменил http на isvalidurl
Mar 14, 2024
ccfbc7c
Фикс грязного хака
Mar 14, 2024
33b3066
Зменил проверку . на ./
Mar 14, 2024
f45622d
тест
Mar 14, 2024
f846295
Добавил приведение к абсолютному пути.
Mar 14, 2024
ebb7afe
fix
Mar 14, 2024
b91b610
small fixes
Mar 14, 2024
7c9f94c
Обновил картинку в ридми
Mar 14, 2024
80ef2dc
добавил в описание возможностей
Mar 15, 2024
d13caf5
Merge remote-tracking branch 'origin/develop' into develop
Mar 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
12 changes: 6 additions & 6 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
java-version: '11'
distribution: 'temurin'
- name: Build with Gradle
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
with:
arguments: check
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v3
- name: Execute Gradle build
run: ./gradlew check
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,21 @@ pipeline1C()
* Если информационная база нужна для запуска в режиме "Предприятие" (например, для шагов `bdd` или `smoke`), то будет запущен шаг "Миграция ИБ".
* После загрузки конфигурации в ИБ будет выполняться запуск ИБ с целью запуска обработчиков обновления из БСП (`initInfobase` -> `runMigration`).
* Если в настройках шага инициализации не заполнен массив дополнительных шагов миграции (`initInfobase` -> `additionalInitializationSteps`), но в каталоге `tools` присутствуют файлы с именами, удовлетворяющими шаблону `vrunner.init*.json`, то автоматически выполняется запуск `vrunner vanessa` с передачей найденных файлов в качестве значения настроек (параметр `--settings`) в порядке лексикографической сортировки имен файлов.
* Загрузка расширений в информационную базу
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coderabbitai правки readme в этом пулл реквесте несколько нарушают структуру readme. Данная секция readme содержит описание действий по умолчанию, а предложенные изменения указывают, как можно сконфигурировать загрузку расширений. Предложи новую секцию в readme, куда можно было бы перенести новую информацию, а здесь опиши поведение по умолчанию на основании кода в пулл реквесте. Свои изменения предложи в виде code suggestions

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nixel2007, based on the PR changes, it appears that several files such as InitExtensionMethod.groovy, InitInfoBaseOptions.groovy, and GetExtensions.groovy are involved in the process of extension loading. To accurately describe the default behavior and propose a new section in the README.md, I'll need to review these files in detail. However, without direct access to the content of these files, I can suggest a general approach:

  1. For the existing section on default behaviors: We can mention that by default, the system is designed to automatically detect and load extensions if they are present in a predefined directory or configuration file. This process is streamlined to ensure minimal manual configuration is required from the user.

  2. For the new section on configuring extension loading: This section can detail how users can customize the extension loading process, including specifying the paths to extension files, choosing between loading from source or precompiled extensions, and any necessary configuration options in jobConfiguration.json.

Given the nature of the changes and the files involved, it seems the PR introduces a more flexible and configurable approach to extension loading, which should be highlighted in the README.md accordingly.

Would you like me to draft these sections based on the general understanding, or do you have specific behaviors in mind that should be included?

Analysis chain

This script aims to identify the files modified in the PR that are related to extension loading, which will help understand the default behavior for extension loading.

Scripts executed

The following scripts were executed for the analysis:


Script:

#!/bin/bash
# Fetch the list of modified files in the PR to identify files related to extension loading.
git diff --name-only HEAD~1
# Assuming the PR introduces new classes or scripts for handling extension loading, search for relevant files.
fd --type f --exec grep -l 'extension loading' {}

Length of output: 411

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coderabbitai по умолчанию загрузка расширений не производится.
Да, сгенерируй описание. И общайся на русском языке.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nixel2007, вот предложение по обновлению README.md:

Изменения в существующем разделе о поведении по умолчанию

Добавьте следующее уточнение в раздел, описывающий действия по умолчанию:

-* Загрузка расширений в информационную базу
+* По умолчанию загрузка расширений в информационную базу не производится.

Новый раздел для конфигурирования загрузки расширений

## Конфигурирование загрузки расширений

Для загрузки расширений в информационную базу необходимо выполнить следующие шаги:

1. Определите метод загрузки для каждого расширения в файле `jobConfiguration.json`. Поддерживаются два метода загрузки:
   - `fromSource` - загрузка из исходников;
   - `fromInternet` - загрузка cfe-файла из интернета.

2. Укажите путь до расширения или URL для скачивания cfe-файла. Пример конфигурации для загрузки расширений:

```json
"initInfobase": {
    "extensions": [
        {
            "name": "ИмяРасширения1",
            "initMethod": "fromSource",
            "path": "путь/до/исходников/расширения"
        },
        {
            "name": "ИмяРасширения2",
            "initMethod": "fromInternet",
            "path": "https://example.com/path/to/extension.cfe"
        }
    ]
}
  1. После настройки jobConfiguration.json, система автоматически обработает указанные расширения в соответствии с выбранным методом загрузки.

Этот процесс позволяет гибко настраивать загрузку расширений, обеспечивая необходимую конфигурацию для тестирования и проверки.


Это предложение включает в себя обновление для существующего раздела, чтобы отразить поведение по умолчанию, и добавление нового раздела, который детально описывает процесс конфигурирования загрузки расширений.

<!-- This is an auto-generated reply by CodeRabbit -->

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coderabbitai почему у тебя нет доступа к содержимому файлов в репозитории? Как дать тебе такой доступ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nixel2007, я работаю на основе информации, предоставленной в комментариях и контексте запроса на изменение. Чтобы провести анализ кода или собрать необходимую информацию, я могу запрашивать выполнение shell скриптов. Эти скрипты выполняются в безопасной среде, что позволяет анализировать кодовую базу без прямого доступа к файлам репозитория, обеспечивая безопасность и конфиденциальность.

Если вам нужно, чтобы я провел анализ кода или собрал дополнительную информацию, вы можете включить тег [RUN_SCRIPTS] и сгенерировать shell скрипты в своем комментарии. Это позволит мне выполнить необходимые действия для анализа или сбора информации.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Segate-ekb может вот так и оформить, отдельной секцией?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!

* Если у вас есть расширения которые необходимо загрузить в базу для проведения тестов и проверок, это можно сделать на этапе подготовки базы.
* При загрузке из исходников расширения должны быть в том же формате(edt или конфигуратора) что и основная конфигурация.
* Для загрузки расширений необходимо описать каждое из них в массиве (`initInfobase` -> `extensions`)
* Для каждого из расширений необходимо указать:
* Имя (`extensions` -> `name`)
* Способ получения (`extensions` -> `initMethod`)

Сейчас поддерживаются 2 варианта:
* Из исходников(`fromSource`);
* Скачать cfe-файл из интернета (`fromInternet`)
* Путь до расширения (`extensions` -> `path`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

предложение: если в path указан путь с .cfe на конце, то надо взять этот файл и подключить, во всех остальных случаях - пройти по указанному пути и собрать расширение

соответственно, параметр initMethod можно не использовать

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Там в будущем планировалась ещё поддержка хранилища

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Теперь fromInternet заменено на fromFile, и можно указать как файл в этих ваших интернетах, так и локальный.

Хранилище расширения пока не делал.


* В случае загрузки из исходников - необходимо указать путь к исходникам расширения
* В случае загрузки из интернета - Укажите url по которому будет скачан cfe(Прим.: https://github.com/bia-technologies/yaxunit/releases/download/23.05/YAXUNIT-23.05.cfe)
Segate-ekb marked this conversation as resolved.
Show resolved Hide resolved
* BDD:
* Если в конфигурационном файле проекта не заполнена настройка `bdd` -> `vrunnerSteps`, то автоматически выполняется запуск `vrunner vanessa --settings tools/vrunner.json`.
* Дымовые тесты:
Expand All @@ -142,6 +157,7 @@ pipeline1C()
* Выгрузка результатов в формат `jUnit` осуществляется в файл `./build/out/jUnit/syntax.xml` (`syntaxCheck` -> `pathToJUnitReport`).
* Если в репозитории существует файл `./tools/syntax-check-exception-file.txt`, то команде запуска синтаксического контроля конфигурации данный файл будет передаваться как файл с исключениями сообщений об ошибках (параметр `--exception-file`) (`syntaxCheck` -> `exceptionFile`).
* Конфигурационный файл по умолчанию уже содержит ряд "режимов проверки" для синтаксического контроля конфигурации (`syntaxCheck` -> `checkModes`).
* Если вы хотите провести синтаксический контроль для расширения воспользуйтесь режимом проверки `-Extension <Имя расширения>`, или же `-AllExtensions` для проверки всех расширений.
Segate-ekb marked this conversation as resolved.
Show resolved Hide resolved
Segate-ekb marked this conversation as resolved.
Show resolved Hide resolved
* Трансформация результатов валидации EDT:
* По умолчанию из результатов анализа исключаются замечания, сработавшие на модулях с включенным запретом редактирования (желтый куб с замком) (параметры `resultsTransform` -> `removeSupport` и `resultsTransform` -> `supportLevel`).
* Анализ SonarQube:
Expand Down
7 changes: 6 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@ plugins {
id("org.jenkins-ci.jpi") version "0.38.0" apply false
}

repositories {
mavenCentral()
}

tasks {

register<org.jenkinsci.gradle.plugins.jpi.TestDependenciesTask>("resolveIntegrationTestDependencies") {
Expand Down Expand Up @@ -48,7 +52,7 @@ dependencies {

testImplementation("org.slf4j", "slf4j-api", slf4jVersion)
testImplementation("org.slf4j", "slf4j-simple", slf4jVersion)

// integration-tests
integrationTestImplementation("org.spockframework", "spock-core", spockVersion)
integrationTestImplementation("org.codehaus.groovy", "groovy-all", groovyVersion)
Expand Down Expand Up @@ -106,5 +110,6 @@ sharedLibrary {
dependency("org.jenkinsci.plugins", "pipeline-model-definition", declarativePluginsVersion)
dependency("org.jenkinsci.plugins", "pipeline-model-extensions", declarativePluginsVersion)
dependency("io.jenkins.blueocean", "blueocean-pipeline-api-impl", "1.25.3")
dependency("sp.sd", "file-operations", "214.v2e7dc7f25757")
}
}
2 changes: 1 addition & 1 deletion jenkinsResources/core-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.246
2.441
Segate-ekb marked this conversation as resolved.
Show resolved Hide resolved
5 changes: 4 additions & 1 deletion resources/globalConfiguration.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@
"timeout": {
"smoke": 240,
"bdd": 120,
"getBinaries": 60,
"createInfoBase": 60,
"designerToEdtFormatTransformation": 60,
"edtToDesignerFormatTransformation": 60,
"edtValidate": 240,
"initInfoBase": 60,
"loadExtensions": 60,
"resultTransformation": 10,
"sonarqube": 90,
"syntaxCheck": 240,
Expand All @@ -37,7 +39,8 @@
"initInfobase": {
"initMethod": "fromStorage",
"runMigration": true,
"additionalInitializationSteps": []
"additionalInitializationSteps": [],
"extensions": []
},
"bdd": {
"vrunnerSteps": [
Expand Down
Loading