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

Загрузка базы-эталона из DT или 1CD #124

Merged
merged 22 commits into from
Aug 30, 2024

Conversation

Segate-ekb
Copy link
Contributor

@Segate-ekb Segate-ekb commented Aug 24, 2024

Реализовал загрузку базы из dt и 1cd.

Можно указать путь локальный или ссылку.

При загрузке создается база, в нее грузится dt. После этого все манипуляции происходят уже с эталонной базой.

!Breaking changes! Таймаут CreateInfobase - теперь работает на создание базы. Для стейджа загрузки исходников создан новый "loadSources"

Copy link

coderabbitai bot commented Aug 24, 2024

Warning

Rate limit exceeded

@nixel2007 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 12 minutes and 38 seconds before requesting another review.

How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Commits

Files that changed from the base of the PR and between a656789 and 7f9bf6b.

Walkthrough

Внесены изменения для улучшения процесса инициализации базы данных в Jenkins. Новые параметры конфигурации позволяют загружать справочную базу данных и управлять пользовательскими настройками через соответствующие файлы. Интеграция нового класса CreateInfobase упрощает создание базы данных, а также добавлены методы для загрузки файлов как с локальных, так и из удалённых источников. Обновлены параметры JVM и версии Jenkins для оптимизации работы.

Changes

Файл Изменения
README.md, build.gradle.kts Добавлены новые параметры конфигурации для инициализации базы данных и обновлён блок репозиториев.
InitInfoBaseOptions.groovy Добавлены свойства vrunnerSettings и templateDBPath для улучшения конфигурации.
CreateInfobase.groovy, InitFromFiles.groovy, InitFromStorage.groovy Интегрирован класс CreateInfobase для создания базы данных, изменены команды на "update-dev".
LoadExtensions.groovy Изменено создание переменной optionsPropertyName, улучшена логика возврата vrunnerSettings.
gradlew, gradlew.bat Обновлены параметры JVM для оптимизации работы скриптов.
jenkinsResources/core-version.txt Обновлён номер версии Jenkins с 2.246 на 2.462.1.
test/integration/groovy/printLocationTest.groovy Обновлено ожидаемое сообщение в тесте для соответствия новой конфигурации.
gradle/wrapper/gradle-wrapper.properties Обновлён URL дистрибутива Gradle и добавлен параметр networkTimeout.
.vscode/settings.json Добавлен файл конфигурации для автоматического анализа на наличие null в Java.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Jenkins
    participant CreateInfobase
    participant VRunner

    User->>Jenkins: Запуск процесса
    Jenkins->>CreateInfobase: Инициализация Infobase
    CreateInfobase->>CreateInfobase: Проверка templateDBPath
    alt Путь пустой
        CreateInfobase-->>CreateInfobase: Создание пустой базы
    else Путь к файлу
        CreateInfobase-->>CreateInfobase: Копирование файла
        CreateInfobase->>VRunner: Запуск создания базы
    end
Loading

🐇 В мире кода, где меняем мы,
Изменения бьют, как гром среди тишины.
Теперь базы ждем, с настройками в руках,
Пусть каждый шаг будет радостью и смехом! 🌟


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between a5613f4 and 3f12889.

Files ignored due to path filters (2)
  • resources/globalConfiguration.json is excluded by !**/*.json
  • resources/schema.json is excluded by !**/*.json
Files selected for processing (9)
  • README.md (1 hunks)
  • build.gradle.kts (1 hunks)
  • src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/steps/CreateInfobase.groovy (1 hunks)
  • src/ru/pulsar/jenkins/library/steps/GetExtensions.groovy (3 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy (3 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy (1 hunks)
  • src/ru/pulsar/jenkins/library/utils/FileUtils.groovy (1 hunks)
Additional comments not posted (18)
src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (4)

9-9: Импорт CreateInfobase выглядит корректным.

Добавление импорта необходимо для новой функциональности.


45-46: Создание и выполнение CreateInfobase выглядит корректным.

Убедитесь, что CreateInfobase имеет достаточное покрытие тестами.


50-51: Обновление команды VRunner на update-dev выглядит корректным.

Убедитесь, что это изменение соответствует общим требованиям системы.


52-57: Логика обработки дополнительных настроек VRunner выглядит корректной.

Убедитесь, что файл настроек существует и является допустимым.

src/ru/pulsar/jenkins/library/utils/FileUtils.groovy (3)

45-58: Метод loadFile реализован корректно.

Убедитесь, что обработка ошибок в методе является надежной.


60-67: Метод isValidUrl реализован корректно.

Рассмотрите возможность добавления логирования для недопустимых URL для целей отладки.


69-75: Метод getAbsolutePath реализован корректно.

Убедитесь, что переменная окружения WORKSPACE всегда установлена.

src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy (4)

13-13: Импорт CreateInfobase выглядит корректным.

Добавление импорта необходимо для новой функциональности.


47-48: Создание и выполнение CreateInfobase выглядит корректным.

Убедитесь, что CreateInfobase имеет достаточное покрытие тестами.


63-64: Обновление команды VRunner на update-dev выглядит корректным.

Убедитесь, что это изменение соответствует общим требованиям системы.


65-70: Логика обработки дополнительных настроек VRunner выглядит корректной.

Убедитесь, что файл настроек существует и является допустимым.

src/ru/pulsar/jenkins/library/steps/CreateInfobase.groovy (1)

15-17: Конструктор класса CreateInfobase.

Конструктор корректно инициализирует поле config.

src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy (1)

46-51: Проверьте существование файла vrunnerSettings.

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

src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2)

28-38: Проверьте описание новых свойств.

Описание свойств vrunnerSettings и baseDBPath четкое и информативное. Убедитесь, что они соответствуют фактическому использованию в коде.


77-78: Обновление метода toString.

Метод toString корректно обновлен для включения новых свойств.

src/ru/pulsar/jenkins/library/steps/GetExtensions.groovy (1)

57-58: Упрощение загрузки расширений.

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

Однако, убедитесь, что удаление методов isValidUrl и getAbsolutePath не повлияло на другие части кода.

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

build.gradle.kts (1)

14-14: Добавление репозитория Jenkins.

Добавление URL репозитория Jenkins улучшает возможности интеграции проекта с Jenkins.

README.md (1)

211-229: Документация по загрузке эталонной базы.

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

src/ru/pulsar/jenkins/library/steps/CreateInfobase.groovy Outdated Show resolved Hide resolved
src/ru/pulsar/jenkins/library/steps/CreateInfobase.groovy Outdated Show resolved Hide resolved
src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 3f12889 and 4108f98.

Files selected for processing (1)
  • vars/pipeline1C.groovy (1 hunks)
Additional comments not posted (1)
vars/pipeline1C.groovy (1)

116-116: Проверьте обработку нового параметра в функции loadExtensions.

Добавление параметра 'initInfoBase' в вызов функции loadExtensions требует проверки, чтобы убедиться, что этот параметр правильно обрабатывается внутри функции. Убедитесь, что функция поддерживает новый параметр и что его добавление соответствует ожидаемому функционалу.

@Segate-ekb
Copy link
Contributor Author

@ovcharenko-di смотри, у меня теперь тоже есть собственный пр с загрузкой из ДТ)

README.md Outdated

Реализована возможность загрузки эталонной базы на этапе инициализации информационной базы. Для этого необходимо указать в конфигурационном файле параметр `initInfobase` -> `baseDBPath`:
Copy link
Member

Choose a reason for hiding this comment

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

так как это дефолт, то вполне можно добавить и в основной раздел.

build.gradle.kts Outdated Show resolved Hide resolved
…симостей, вынес создание базы из последующих степов.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Outside diff range, codebase verification and nitpick comments (2)
src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (2)

Line range hint 25-38: Добавьте логирование и обработку ошибок.

Метод run не содержит достаточного логирования и обработки ошибок, что может затруднить отладку и выявление проблем.

Примените этот дифф для добавления логирования и обработки ошибок:

def run() {
    IStepExecutor steps = ContextRegistry.getContext().getStepExecutor()

    Logger.printLocation()

    def extensions = this.config.initInfoBaseOptions.extensions

    if (this.stageName) {
        this.extensionsFiltered = extensions.findAll { extension ->
            extension.stages.contains(this.stageName)
        }
    } else {
        this.extensionsFiltered = extensions.findAll { extension -> extension.stages.length == 0 || extension.stages.contains("initInfoBase") }
    }

    def env = steps.env()
    String cfeDir = "$env.WORKSPACE/$GetExtensions.EXTENSIONS_OUT_DIR"

    String vrunnerPath = VRunner.getVRunnerPath()

    this.extensionsFiltered.each {
        Logger.println("Установим расширение ${it.name}")
        try {
            loadExtension(it, vrunnerPath, steps, cfeDir)
            Logger.println("Расширение ${it.name} установлено успешно.")
        } catch (Exception e) {
            Logger.println("Ошибка при установке расширения ${it.name}: ${e.message}")
            throw e
        }
    }
}

Line range hint 40-64: Добавьте логирование и обработку ошибок.

Метод loadExtension не содержит достаточного логирования и обработки ошибок, что может затруднить отладку и выявление проблем.

Примените этот дифф для добавления логирования и обработки ошибок:

private void loadExtension (Extension extension, String vrunnerPath, IStepExecutor steps, String cfeDir) {

    String pathToExt = "$cfeDir/${extension.name}.cfe"
    FilePath localPathToExt = FileUtils.getFilePath(pathToExt)

    // Команда загрузки расширения
    String loadCommand = vrunnerPath + ' run --command "Путь=' + localPathToExt + ';ЗавершитьРаботуСистемы;" --execute '
    String executeParameter = '$runnerRoot/epf/ЗагрузитьРасширениеВРежимеПредприятия.epf'
    if (steps.isUnix()) {
        executeParameter = '\\' + executeParameter
    }
    loadCommand += executeParameter
    loadCommand += ' --ibconnection "/F./build/ib"'

    String vrunnerSettings = getVrunnerSettingsForStage(this.config, this.stageName)
    if (vrunnerSettings && steps.fileExists(vrunnerSettings)) {
        loadCommand += " --settings $vrunnerSettings"
    }

    List<String> logosConfig = ["LOGOS_CONFIG=$config.logosConfig"]
    steps.withEnv(logosConfig) {
        try {
            VRunner.exec(loadCommand)
            Logger.println("Команда загрузки расширения выполнена успешно: $loadCommand")
        } catch (Exception e) {
            Logger.println("Ошибка при выполнении команды загрузки расширения: ${e.message}")
            throw e
        }
    }
}
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 4108f98 and eefbb89.

Files selected for processing (5)
  • src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (3 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy (3 hunks)
  • src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (1 hunks)
  • vars/createInfobase.groovy (1 hunks)
  • vars/pipeline1C.groovy (2 hunks)
Files skipped from review as they are similar to previous changes (3)
  • src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy
  • src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy
  • vars/pipeline1C.groovy
Additional comments not posted (4)
vars/createInfobase.groovy (1)

6-6: Проверьте регистрацию контекста.

Убедитесь, что регистрация контекста по умолчанию (ContextRegistry.registerDefaultContext(this)) необходима и корректна.

Запустите следующий скрипт для проверки использования регистрации контекста:

Verification successful

Регистрация контекста по умолчанию является необходимой и корректной.

Регистрация контекста с помощью ContextRegistry.registerDefaultContext(this) используется во многих скриптах в директории vars, что указывает на её важность и необходимость для корректной работы последующих операций в каждом скрипте.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Описание: Проверить использование регистрации контекста.

# Тест: Поиск использования функции registerDefaultContext. Ожидается: Корректное использование.
rg --type groovy -A 5 $'ContextRegistry.registerDefaultContext'

Length of output: 5654

src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (3)

Line range hint 18-20: Метод getExtensionsFiltered одобрен.

Метод логически корректен и не требует изменений.


Line range hint 12-16: Конструктор LoadExtensions одобрен.

Конструктор логически корректен и не требует изменений.


86-86: Проверьте влияние изменения конструкции optionsName.

Изменение конструкции переменной optionsName может повлиять на доступ к параметрам в конфигурации.

Запустите следующий скрипт для проверки использования переменной optionsName:

vars/createInfobase.groovy Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between eefbb89 and b503ae6.

Files selected for processing (1)
  • src/ru/pulsar/jenkins/library/steps/CreateInfobase.groovy (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/ru/pulsar/jenkins/library/steps/CreateInfobase.groovy

vars/pipeline1C.groovy Outdated Show resolved Hide resolved
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between b503ae6 and d43d6bd.

Files ignored due to path filters (2)
  • resources/globalConfiguration.json is excluded by !**/*.json
  • resources/schema.json is excluded by !**/*.json
Files selected for processing (2)
  • src/ru/pulsar/jenkins/library/configuration/TimeoutOptions.groovy (1 hunks)
  • vars/pipeline1C.groovy (2 hunks)
Files skipped from review as they are similar to previous changes (1)
  • vars/pipeline1C.groovy
Additional comments not posted (1)
src/ru/pulsar/jenkins/library/configuration/TimeoutOptions.groovy (1)

24-27: Изменение принято.

Добавление нового свойства loadSources соответствует существующим свойствам в классе. Описание четкое и предоставляет необходимые детали. Значение по умолчанию установлено на 60 минут, что соответствует другим аналогичным свойствам.

vars/pipeline1C.groovy Outdated Show resolved Hide resolved
Co-authored-by: Nikita Fedkin <nixel2007@gmail.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between d7bd03a and 5fb93d2.

Files ignored due to path filters (1)
  • gradle/wrapper/gradle-wrapper.jar is excluded by !**/*.jar, !**/*.jar
Files selected for processing (7)
  • build.gradle.kts (1 hunks)
  • gradle/wrapper/gradle-wrapper.properties (1 hunks)
  • gradlew (2 hunks)
  • gradlew.bat (4 hunks)
  • jenkinsResources/core-version.txt (1 hunks)
  • src/ru/pulsar/jenkins/library/utils/FileUtils.groovy (1 hunks)
  • test/integration/groovy/printLocationTest.groovy (1 hunks)
Files skipped from review due to trivial changes (1)
  • jenkinsResources/core-version.txt
Files skipped from review as they are similar to previous changes (4)
  • build.gradle.kts
  • gradle/wrapper/gradle-wrapper.properties
  • gradlew.bat
  • src/ru/pulsar/jenkins/library/utils/FileUtils.groovy
Additional comments not posted (5)
test/integration/groovy/printLocationTest.groovy (1)

38-38: Изменение ожидаемого сообщения журнала

Сообщение журнала изменено с 'Running on node master' на 'Running on node built-in'. Это изменение отражает обновление конфигурации или поведения системы.

Изменения кода одобрены.

gradlew (4)

1-16: Обновление заголовка скрипта

Заголовок скрипта обновлен для уточнения требований к POSIX-совместимой оболочке. Лицензионная информация осталась без изменений.

Изменения кода одобрены.


89-89: Обновление параметров JVM по умолчанию

Параметры JVM по умолчанию теперь включают как максимальный, так и минимальный размер кучи. Это улучшает управление памятью.

Изменения кода одобрены.


85-85: Обновление переменной APP_BASE_NAME

Переменная APP_BASE_NAME теперь устанавливается с использованием более лаконичного синтаксиса. Это улучшает читаемость и поддерживаемость скрипта.

Изменения кода одобрены.


124-126: Обновление переменной JAVACMD

Переменная JAVACMD теперь устанавливается без кавычек. Это соответствует требованиям POSIX и улучшает надежность скрипта.

Изменения кода одобрены.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 5fb93d2 and 258af0e.

Files ignored due to path filters (2)
  • resources/globalConfiguration.json is excluded by !**/*.json
  • resources/schema.json is excluded by !**/*.json
Files selected for processing (2)
  • src/ru/pulsar/jenkins/library/configuration/TimeoutOptions.groovy (1 hunks)
  • vars/pipeline1C.groovy (2 hunks)
Files skipped from review as they are similar to previous changes (2)
  • src/ru/pulsar/jenkins/library/configuration/TimeoutOptions.groovy
  • vars/pipeline1C.groovy

@firstBitMarksistskaya firstBitMarksistskaya deleted a comment from coderabbitai bot Aug 26, 2024
@firstBitMarksistskaya firstBitMarksistskaya deleted a comment from coderabbitai bot Aug 26, 2024
@nixel2007
Copy link
Member

@coderabbitai full review

Copy link

coderabbitai bot commented Aug 26, 2024

Actions performed

Full review triggered.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Outside diff range, codebase verification and nitpick comments (2)
src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (1)

Line range hint 51-69: Добавьте обработку ошибок.

Функция loadExtension корректно реализована, но для повышения надежности рекомендуется добавить обработку ошибок.

Добавьте блок try-catch для обработки возможных ошибок при выполнении команды загрузки расширения.

README.md (1)

211-229: Добавьте краткое введение и уточните использование vrunnerSettings.

Сегмент хорошо документирован и предоставляет четкие инструкции. Однако, для улучшения документации:

  1. Добавьте краткое введение, объясняющее цель эталонной базы данных.
  2. Уточните использование vrunnerSettings в контексте учетных записей пользователей.

Пример:

## Загрузка эталонной базы

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

Для этого необходимо указать в конфигурационном файле параметр `initInfobase` -> `templateDBPath`:

```json
"initInfobase": {
    "templateDBPath": "путь/до/файла/базы.dt"
}
  • Поддерживается загрузка файлов формата .dt и .1CD.
  • Путь к файлу базы может быть как локальным, так и удаленным (URL).
  • Если эталонная база содержит пользователей, необходимо указать файл конфигурации, который будет использован для дальнейшей инициализации базы данных. Для этого необходимо указать параметр initInfobase -> vrunnerSettings:
"initInfobase": {
    "templateDBPath": "путь/до/файла/базы.dt",
    "vrunnerSettings": "tools/vrunner.json"
}

</blockquote></details>

</blockquote></details>

<details>
<summary>Review details</summary>

**Configuration used: CodeRabbit UI**
**Review profile: CHILL**

<details>
<summary>Commits</summary>

Files that changed from the base of the PR and between a5613f424b327539e60859c4e5afbf141eb92dbd and 9c0ba58d5a706fb31d4cc49cbee2fefaf6d54c3a.

</details>
<details>
<summary>Files ignored due to path filters (3)</summary>

* `gradle/wrapper/gradle-wrapper.jar` is excluded by `!**/*.jar`, `!**/*.jar`
* `resources/globalConfiguration.json` is excluded by `!**/*.json`
* `resources/schema.json` is excluded by `!**/*.json`

</details>

<details>
<summary>Files selected for processing (19)</summary>

* .github/workflows/gradle.yml (1 hunks)
* README.md (1 hunks)
* build.gradle.kts (1 hunks)
* gradle/wrapper/gradle-wrapper.properties (1 hunks)
* gradlew (2 hunks)
* gradlew.bat (4 hunks)
* jenkinsResources/core-version.txt (1 hunks)
* src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2 hunks)
* src/ru/pulsar/jenkins/library/configuration/TimeoutOptions.groovy (1 hunks)
* src/ru/pulsar/jenkins/library/steps/CreateInfobase.groovy (1 hunks)
* src/ru/pulsar/jenkins/library/steps/GetExtensions.groovy (3 hunks)
* src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (2 hunks)
* src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy (2 hunks)
* src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy (1 hunks)
* src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (1 hunks)
* src/ru/pulsar/jenkins/library/utils/FileUtils.groovy (1 hunks)
* test/integration/groovy/printLocationTest.groovy (1 hunks)
* vars/createInfobase.groovy (1 hunks)
* vars/pipeline1C.groovy (2 hunks)

</details>











<details>
<summary>Additional comments not posted (40)</summary><blockquote>

<details>
<summary>jenkinsResources/core-version.txt (1)</summary><blockquote>

`1-1`: **Обновление версии.**

Версия обновлена с `2.246` до `2.462.1`. Изменение выглядит корректным.

Изменение кода одобрено.

</blockquote></details>
<details>
<summary>gradle/wrapper/gradle-wrapper.properties (1)</summary><blockquote>

`3-4`: **Обновление версии Gradle и добавление таймаута.**

Версия Gradle обновлена с `6.3` до `7.6.1`, добавлено свойство `networkTimeout` со значением `10000`. Изменения выглядят корректными.

Изменение кода одобрено.

</blockquote></details>
<details>
<summary>vars/createInfobase.groovy (1)</summary><blockquote>

`5-10`: **Добавьте обработку ошибок и логирование.**

Функция `call` не содержит обработку ошибок и логирование, что может затруднить отладку и выявление проблем.

Примените этот дифф для добавления обработки ошибок и логирования:

```diff
def call(JobConfiguration config) {
    ContextRegistry.registerDefaultContext(this)

    try {
        def createInfobase = new CreateInfobase(config)
        createInfobase.run()
        println("Infobase created successfully.")
    } catch (Exception e) {
        println("Error creating infobase: ${e.message}")
        throw e
    }
}

Likely invalid or redundant comment.

.github/workflows/gradle.yml (2)

18-18: Обновление версии JDK до 17

Обновление JDK до версии 17 может привести к улучшению производительности и новым возможностям. Убедитесь, что все зависимости и библиотеки совместимы с новой версией.


21-21: Указание версии JDK 17

Указание версии JDK 17 соответствует обновлению. Изменение одобрено.

test/integration/groovy/printLocationTest.groovy (1)

38-38: Обновление ожидаемого сообщения журнала

Ожидаемое сообщение журнала обновлено с 'Running on node master' на 'Running on node built-in'. Изменение одобрено.

src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (8)

45-45: Обновление команды для среды разработки

Команда обновлена с init-dev на update-dev, что указывает на переход от настройки новой среды к обновлению существующей. Изменение одобрено.


46-46: Добавление пустой строки

Добавление пустой строки улучшает читаемость кода. Изменение одобрено.


47-47: Определение опций для инициализации базы данных

Опции для инициализации базы данных определены. Изменение одобрено.


48-48: Добавление пустой строки

Добавление пустой строки улучшает читаемость кода. Изменение одобрено.


49-49: Определение переменной vrunnerSettings

Переменная vrunnerSettings определена. Изменение одобрено.


50-51: Добавление условной проверки для vrunnerSettings

Добавлена условная проверка для добавления настроек к команде, если vrunnerSettings определен и соответствующий файл существует. Изменение одобрено.


52-52: Добавление пустой строки

Добавление пустой строки улучшает читаемость кода. Изменение одобрено.


54-54: Выполнение команды

Команда выполняется с обновленной логикой и настройками. Изменение одобрено.

src/ru/pulsar/jenkins/library/utils/FileUtils.groovy (2)

60-67: Код выглядит хорошо!

Метод корректно проверяет, является ли строка допустимым URL.


69-75: Код выглядит хорошо!

Метод корректно разрешает абсолютный путь на основе окружения.

src/ru/pulsar/jenkins/library/configuration/TimeoutOptions.groovy (1)

24-27: Выглядит хорошо!

Свойство loadConfiguration правильно аннотировано и соответствует шаблону других свойств в классе.

Изменения в коде одобрены.

gradlew.bat (5)

1-15: Выглядит хорошо!

Добавленные комментарии лицензии обеспечивают ясность в отношении правового использования файла.

Изменения в коде одобрены.


37-37: Выглядит хорошо!

Изменение переменной DEFAULT_JVM_OPTS для указания максимального и минимального размера кучи JVM оптимизирует управление памятью.

Изменения в коде одобрены.


44-44: Выглядит хорошо!

Удаление метки :init упрощает путь выполнения и уменьшает ненужное ветвление.

Изменения в коде одобрены.


75-75: Выглядит хорошо!

Использование %* для захвата всех переданных аргументов упрощает обработку аргументов командной строки.

Изменения в коде одобрены.


84-87: Выглядит хорошо!

Добавление переменной EXIT_CODE гарантирует, что скрипт завершится с правильным кодом ошибки.

Изменения в коде одобрены.

src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy (6)

46-47: Выглядит хорошо!

Переменная options правильно инициализируется и используется для извлечения свойства vrunnerSettings.

Изменения в коде одобрены.


48-48: Выглядит хорошо!

Свойство vrunnerSettings правильно извлекается из переменной options.

Изменения в коде одобрены.


49-51: Выглядит хорошо!

Условная проверка правильно реализована для обеспечения корректности vrunnerSettings.

Изменения в коде одобрены.


50-50: Выглядит хорошо!

Модификация строки command для включения флага --settings и значения vrunnerSettings правильно реализована.

Изменения в коде одобрены.


52-52: Выглядит хорошо!

Обработка ошибок с помощью блока steps.catchError правильно реализована для обеспечения надежности шага миграции.

Изменения в коде одобрены.


52-52: Выглядит хорошо!

Обработка ошибок с помощью блока steps.catchError правильно реализована для обеспечения надежности шагов инициализации.

Изменения в коде одобрены.

src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (2)

86-86: Проверьте влияние изменения на доступ к параметрам.

Изменение в конструировании переменной optionsName может повлиять на доступ к параметрам из объекта config, особенно если ключи чувствительны к регистру.

Проверьте, что все обращения к параметрам с использованием optionsName работают корректно.


Line range hint 84-92: Всё выглядит хорошо!

Функция корректно реализована и не требует изменений.

Изменения в коде одобрены.

src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2)

28-31: Всё выглядит хорошо!

Свойство vrunnerSettings корректно добавлено и описано.

Изменения в коде одобрены.

Проверьте, что свойство vrunnerSettings используется корректно в кодовой базе.


33-38: Всё выглядит хорошо!

Свойство templateDBPath корректно добавлено и описано.

Изменения в коде одобрены.

Проверьте, что свойство templateDBPath используется корректно в кодовой базе.

src/ru/pulsar/jenkins/library/steps/GetExtensions.groovy (1)

57-58: Проверьте влияние упрощения процесса загрузки расширений.

Удаление методов loadExtension, isValidUrl и getAbsolutePath упрощает код, но может снизить гибкость. Убедитесь, что новая реализация обрабатывает все необходимые сценарии.

Проверьте, что новая реализация корректно обрабатывает все типы путей к расширениям.

build.gradle.kts (1)

57-58: Отличное дополнение для интеграционного тестирования!

Добавление библиотеки jenkins-test-harness улучшает возможности интеграционного тестирования.

Изменения в коде одобрены.

gradlew (4)

1-39: Четкое и информативное описание скрипта!

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

Изменения в коде одобрены.


68-86: Улучшенная обработка переменных и разрешение символических ссылок!

Изменения упрощают процесс разрешения символических ссылок и установки домашнего каталога приложения.

Изменения в коде одобрены.


89-89: Улучшенное управление памятью!

Расширение параметров JVM по умолчанию для включения максимального и минимального размера кучи улучшает управление памятью.

Изменения в коде одобрены.


200-243: Улучшенная обработка аргументов!

Изменения улучшают надежность и корректность обработки аргументов.

Изменения в коде одобрены.

vars/pipeline1C.groovy (2)

Line range hint 100-111: Отличное дополнение для управления конфигурацией!

Новый этап 'Загрузка конфигурации' с механизмом тайм-аута улучшает надежность и управляемость пайплайна.

Изменения в коде одобрены.


123-123: Улучшенная функциональность загрузки расширений!

Изменение вызова функции loadExtensions для принятия дополнительного аргумента 'initInfoBase' расширяет возможности метода.

Изменения в коде одобрены.

…/vrunner.json

В случае если база инициализирована из шаблона - настройки добавляются. Если нет - не добавляются. Это работает только на этапе, где настройки не обязательны.
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 9c0ba58 and 50e73ea.

Files ignored due to path filters (1)
  • resources/globalConfiguration.json is excluded by !**/*.json
Files selected for processing (4)
  • src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy (4 hunks)
Files skipped from review as they are similar to previous changes (2)
  • src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy
  • src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy
Additional comments not posted (5)
src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (2)

45-45: Проверьте изменение с init-dev на update-dev.

Убедитесь, что изменение команды с init-dev на update-dev было намеренным и не влияет на процесс инициализации.


50-52: LGTM!

Добавление условных настроек является хорошим улучшением. Убедитесь, что путь vrunnerSettings всегда действителен.

src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (3)

28-32: LGTM!

Добавление свойства vrunnerSettings улучшает конфигурационные возможности класса.


33-39: LGTM!

Добавление свойства templateDBPath предоставляет дополнительную гибкость для пользователей.


84-86: LGTM!

Метод templateDBLoaded() является хорошим дополнением для проверки наличия пути к базе данных.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 50e73ea and f158b48.

Files selected for processing (1)
  • src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (1 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between f158b48 and a9fbf86.

Files ignored due to path filters (1)
  • resources/schema.json is excluded by !**/*.json
Files selected for processing (1)
  • src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2 hunks)
Files skipped from review as they are similar to previous changes (1)
  • src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between a9fbf86 and 5c5b284.

Files selected for processing (2)
  • .vscode/settings.json (1 hunks)
  • src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (1 hunks)
Files skipped from review due to trivial changes (1)
  • .vscode/settings.json
Files skipped from review as they are similar to previous changes (1)
  • src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 5c5b284 and a656789.

Files selected for processing (6)
  • src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/configuration/JobConfiguration.groovy (1 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy (2 hunks)
  • src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy (3 hunks)
  • src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy (1 hunks)
Files skipped from review as they are similar to previous changes (2)
  • src/ru/pulsar/jenkins/library/steps/InitFromStorage.groovy
  • src/ru/pulsar/jenkins/library/steps/LoadExtensions.groovy
Additional comments not posted (9)
src/ru/pulsar/jenkins/library/steps/InitFromFiles.groovy (3)

34-39: Обработка формата источника EDT.

Код для обработки формата источника EDT выглядит корректно, но убедитесь, что переменные EdtToDesignerFormatTransformation.CONFIGURATION_DIR и EdtToDesignerFormatTransformation.CONFIGURATION_ZIP_STASH определены и доступны.

Проверьте, что переменные EdtToDesignerFormatTransformation.CONFIGURATION_DIR и EdtToDesignerFormatTransformation.CONFIGURATION_ZIP_STASH определены и доступны.


44-45: Изменение команды для vrunnerPath.

Изменение команды с init-dev на update-dev может повлиять на логику инициализации. Убедитесь, что это изменение соответствует требованиям проекта.

Проверьте, что изменение команды с init-dev на update-dev соответствует требованиям проекта.


47-52: Добавление настроек vrunnerSettings.

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

Изменения одобрены.

src/ru/pulsar/jenkins/library/steps/InitInfoBase.groovy (4)

33-33: Получение пути к vrunner.

Получение пути к vrunnerPath выглядит корректно. Убедитесь, что метод VRunner.getVRunnerPath() возвращает правильный путь.

Изменения одобрены.


35-41: Добавление настроек vrunnerSettings.

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

Изменения одобрены.


51-54: Добавление обработки ошибок для команды миграции.

Добавление обработки ошибок для команды миграции повышает надежность выполнения. Убедитесь, что обработка ошибок охватывает все возможные исключения.

Изменения одобрены.


64-74: Добавление обработки ошибок для дополнительных шагов инициализации.

Добавление обработки ошибок для дополнительных шагов инициализации повышает надежность выполнения. Убедитесь, что обработка ошибок охватывает все возможные исключения.

Изменения одобрены.

src/ru/pulsar/jenkins/library/configuration/InitInfoBaseOptions.groovy (2)

28-33: Добавление свойства vrunnerSettings.

Свойство vrunnerSettings добавлено корректно с описанием и значением по умолчанию.

Изменения одобрены.


34-39: Добавление свойства templateDBPath.

Свойство templateDBPath добавлено корректно с описанием.

Изменения одобрены.

@nixel2007 nixel2007 merged commit 38dae8e into firstBitMarksistskaya:develop Aug 30, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants