Fix/Архивируем результаты EDT-валидации в отдельный архив#185
Fix/Архивируем результаты EDT-валидации в отдельный архив#185Kyrales wants to merge 10 commits intofirstBitMarksistskaya:developfrom
Conversation
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the 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. 📒 Files selected for processing (1)
WalkthroughОбновлены константы путей результатов для EDT (добавлена подпапка Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Jenkins as Jenkins
participant EdtValidate
participant Workspace as Workspace
participant Artifacts as Artifacts
Jenkins->>EdtValidate: run validation
EdtValidate->>Workspace: write `build/out/edt-validate/edt-validate.out`
EdtValidate->>Jenkins: stash(RESULT_STASH, RESULT_FILE)
EdtValidate->>Workspace: create resultDir, copy .log into resultDir
EdtValidate->>Artifacts: zip resultDir -> edt-validate.zip
Note right of Artifacts `#DDFFDD`: ZIP marked for archive (artifact)
sequenceDiagram
autonumber
actor Jenkins as Jenkins
participant ResultsTransformer
participant Workspace as Workspace
participant Artifacts as Artifacts
Jenkins->>ResultsTransformer: transform results
ResultsTransformer->>Workspace: write `build/out/edt-validate/edt-issues.json`
ResultsTransformer->>Jenkins: stash(RESULT_STASH, RESULT_FILE)
ResultsTransformer->>Workspace: compute resultDir from edtValidateFile
ResultsTransformer->>Artifacts: zip resultDir -> edt-validate-ResultsTransformer.zip
Note right of Artifacts `#DDFFDD`: ZIP marked for archive (artifact)
Оценка усилий при рецензировании🎯 2 (Простой) | ⏱️ ~12 минут Возможные участки требующие внимания:
Возможно связанные PR
Рекомендуемые рецензенты
Стихотворение
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (2)
src/ru/pulsar/jenkins/library/steps/EdtValidate.groovy (1)
58-60: Рассмотрите удаление закомментированного кода.Закомментированный код с пояснением лучше, чем просто удаление без объяснений, но теперь, когда результаты архивируются в zip-формате в
ResultsTransformer.groovy(строки 78-82), эти строки, вероятно, больше не нужны.Рекомендации:
- Если это временное решение для тестирования, добавьте
TODOс указанием следующих шагов- Если решение постоянное, удалите закомментированные строки, оставив только комментарий с объяснением
-// * Каратаев Олег - Убрана отправка в артефакты, т.к. непонятен смысл наличия данных артефактов в сборке -//steps.archiveArtifacts("$DesignerToEdtFormatTransformation.WORKSPACE/.metadata/.log") -//steps.archiveArtifacts(RESULT_FILE) +// Архивирование артефактов перенесено в ResultsTransformer.groovy (см. edt-validate-ResultForSonar.zip) steps.stash(RESULT_STASH, RESULT_FILE)src/ru/pulsar/jenkins/library/steps/ResultsTransformer.groovy (1)
78-82: Добавьте проверку существования директории перед архивированием.Код не проверяет наличие директории перед вызовом
steps.zip(). Это оставляет возможность ошибки, еслиresultDirне существует. В кодовой базе используется аналогичная защита в других местах — например, вPublishAllure.groovy(строка 48-49) иZipInfobase.groovy(строка 46-47).Рекомендуется добавить проверку:
// Архивируем результат в отдельный архив и отправляем в артефакты. def resultDir = FileUtils.getFilePath("$edtValidateFile").getParent() +if (!steps.fileExists("$resultDir")) { + Logger.println("Предупреждение: директория результатов не найдена: $resultDir") + return +} String archivePath = "edt-validate-ResultForSonar.zip" Boolean archiveArtifacts = true steps.zip("$resultDir", archivePath, '', archiveArtifacts)Также рекомендуется уточнить путь
archivePath— добавить явную директорию (например,"build/out/edt-validate-ResultForSonar.zip"), как сделано вSyntaxCheck.groovy.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
src/ru/pulsar/jenkins/library/steps/EdtValidate.groovy(2 hunks)src/ru/pulsar/jenkins/library/steps/ResultsTransformer.groovy(2 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: build
🔇 Additional comments (2)
src/ru/pulsar/jenkins/library/steps/ResultsTransformer.groovy (1)
16-16: Обновление пути выглядит корректно.Путь к файлу результатов обновлён с учётом новой структуры каталогов
build/out/edt-validate/, что соответствует изменениям вEdtValidate.groovy.src/ru/pulsar/jenkins/library/steps/EdtValidate.groovy (1)
14-14: Обновление пути выглядит корректно.Путь к файлу результатов обновлён для использования выделенного подкаталога
build/out/edt-validate/, что улучшает организацию артефактов и согласуется с изменениями вResultsTransformer.groovy.
There was a problem hiding this comment.
Actionable comments posted: 3
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
src/ru/pulsar/jenkins/library/steps/EdtValidate.groovy(2 hunks)src/ru/pulsar/jenkins/library/steps/ResultsTransformer.groovy(2 hunks)
🔇 Additional comments (4)
src/ru/pulsar/jenkins/library/steps/ResultsTransformer.groovy (2)
16-16: Путь обновлён для соответствия новой структуре директорий.Изменение константы согласуется с централизацией результатов валидации в поддиректории
edt-validate/.
78-82: Исправьте семантическую ясность кода и проверьте имя архива в описании PR.При анализе обнаружены следующие моменты:
Имя архива: Заявленное несоответствие с "edt-validate-ResultForSonar.zip" не удаётся проверить — описание PR недоступно. Подтвердите нужное имя в описании PR.
Риск потери данных: Исходный файл валидации сохраняется, так как архив содержит весь каталог
build/out/edt-validate/. Однако использование переменнойedtValidateFile(оригинальный файл) для определения архивируемой директории трансформированных результатов семантически запутанно. Используйте вместо этогоResultsTransformer.RESULT_FILEдля большей ясности.Обработка ошибок: Если трансформация (строки 56-72) завершится с ошибкой, архивирование все равно выполнится, но трансформированный файл может быть неполным. Рассмотрите добавление обработки ошибок.
src/ru/pulsar/jenkins/library/steps/EdtValidate.groovy (2)
14-14: Путь обновлён для соответствия новой структуре директорий.Изменение константы согласуется с централизацией результатов валидации в поддиректории
edt-validate/.
67-69: Проверьте соответствие имени архива требованиям PR.Имя архива
edt-validate.zipне совпадает с именемedt-validate-ResultForSonar.zip, указанным в описании PR.Уточните, какое имя архива должно использоваться согласно требованиям, и обеспечьте согласованность именования между
EdtValidate.groovyиResultsTransformer.groovy.
| String resultLogFrom = FileUtils.getFilePath("$env.WORKSPACE/$DesignerToEdtFormatTransformation.WORKSPACE/.metadata/.log") | ||
| String resultLogTo = FileUtils.getFilePath("$env.WORKSPACE/$resultDir/.log") | ||
| FileUtils.loadFile(resultLogFrom, env, resultLogTo) // копируем лог в папку, которая будет архивироваться |
There was a problem hiding this comment.
Копирование лога должно выполняться условно.
Код копирует лог из директории DesignerToEdtFormatTransformation.WORKSPACE/.metadata/.log, которая существует только для формата DESIGNER (строки 36-46). При использовании формата EDT (строки 46-50) этот путь не будет существовать, что приведёт к ошибке.
Оберните копирование лога в условие:
if (config.sourceFormat == SourceFormat.DESIGNER) {
String resultLogFrom = FileUtils.getFilePath("$env.WORKSPACE/$DesignerToEdtFormatTransformation.WORKSPACE/.metadata/.log")
String resultLogTo = FileUtils.getFilePath("$env.WORKSPACE/$resultDir/.log")
FileUtils.loadFile(resultLogFrom, env, resultLogTo)
}🤖 Prompt for AI Agents
In src/ru/pulsar/jenkins/library/steps/EdtValidate.groovy around lines 63 to 65,
the code always copies a log file from
DesignerToEdtFormatTransformation.WORKSPACE/.metadata/.log which only exists for
SourceFormat.DESIGNER and will fail for EDT; wrap the log-copy block in a
conditional that checks if config.sourceFormat == SourceFormat.DESIGNER and only
then compute resultLogFrom/resultLogTo and call FileUtils.loadFile so the copy
is skipped for non-DESIGNER formats.
There was a problem hiding this comment.
@Kyrales посмотри на комментарий кролика, пожалуйста.
There was a problem hiding this comment.
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!
|
@nixel2007 почему не мержим в девелоп? |
|
@Kyrales сейчас все силы на bsl ls. Как доделаю релиз, вернусь к jenkins lib. |
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Архивируем результаты EDT-валидации в отдельный архив
Сейчас много файлов засоряют артефакты. В доработке: архивируем нужные необходимые для обработки сонаром в отдельный архив edt-validate-ResultForSonar.zip и помещаем в артефакты.