-
Notifications
You must be signed in to change notification settings - Fork 75
Fix: Архивировать результирующие файлы 1Cv8.1CD только используемые #175
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
base: develop
Are you sure you want to change the base?
Fix: Архивировать результирующие файлы 1Cv8.1CD только используемые #175
Conversation
… или возникла необходимость по ошибке с помещением в stash
WalkthroughВ ZipInfobase.run() добавлено условие: операции zip и stash выполняются только при stage == 'initInfoBase' или если archiveInfobase == true. Логика формирования имени архива сохранена: для initInfoBase — "1Cv8.1CD.zip", иначе — "1Cv8.1CD.{stage}.zip". Объявления публичных сущностей не менялись. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor Jenkins as Jenkins Pipeline
participant Zip as ZipInfobase.run
participant FS as FS
participant Stash as Jenkins Stash
Jenkins->>Zip: run(stage, archiveInfobase)
Zip->>FS: delete existing archive (если есть)
alt stage == "initInfoBase"
Zip->>FS: zip 1Cv8.1CD -> 1Cv8.1CD.zip
Zip->>Stash: stash archive
else archiveInfobase == true
Zip->>FS: zip 1Cv8.1CD -> 1Cv8.1CD.{stage}.zip
Zip->>Stash: stash archive
else
Note over Zip: Пропуск zip/stash
end
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Possibly related PRs
Suggested reviewers
Poem
✨ Finishing Touches🧪 Generate unit tests
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (1)
src/ru/pulsar/jenkins/library/steps/ZipInfobase.groovy (1)
37-44: Комментарий про область действия опции вводит в заблуждение.Сейчас флаг далее влияет не только на “сохранение артефакта”, но и на сам факт выполнения zip/stash (кроме
initInfoBase). Уточните комментарий, чтобы будущие изменения не поломали поведение по недопониманию.- // опция отвечает только за то, будет ли файл сохранен в виде артефакта + // Внимание: вычисленный ниже флаг управляет сохранением как артефакта + // и одновременно служит триггером выполнения zip/stash (кроме initInfoBase)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
src/ru/pulsar/jenkins/library/steps/ZipInfobase.groovy(1 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 (1)
src/ru/pulsar/jenkins/library/steps/ZipInfobase.groovy (1)
49-53: Добавить логирование и разделить флаги архивирования и stash.
Вынести условие вshouldZipAndStash, логировать текущееstageиarchiveInfobaseи, при необходимости, ввести отдельный флаг для stash, чтобы избежать нежелательного stash внеinitInfoBase.
|
Не понимаю, откуда архивирование всего подряд? Основная функциональность этого шага - помещать базу в стэш. вызывается он только из тех мест, где нужно базу потом доставать из стэша. необходимость дополнительного прикладывания зипа как архив тоже вычисляется внутри самого шага. |
@nixel2007 например вариант, если без моего исправления по BDD проверке: В моем коде это исправлено: |
|
ага, я понял. тут есть небольшая проблема. изначально шаг предназначался для запихивания базы в стэш, для последующего анстэша, если это надо будет. потом в него добавился флаг необходимости добавления базы в артефакты. с текущей доработкой помимо изменения поведения по прикладыванию зипа в артефакты так же меняется поведения стэша - необходимость стэша явно зашита в коде по условию архивации или конкретно этапе, что связывает этот универсальный шаг с конкретной логикой, которая может быть заложена в других местах пайплайна. я согласен с необходимостью доработки, но предлагаю чуть развернуть управление - пускай pipeline1C решает, нужно ли добавлять базу в стэш. что-нибудь типа доп параметра doStash. когда он передан как true (из ветки инициализации базы), тогда база добавляется в стэш в любом случае, а в артефакты - по текущей логике с определением currentResult и настроек. если флаг передан как false, то в стэш оно не кладется. Как тебе идея? |
|
А вы не хотите выделить сбор артефактов в отдельный блок в настройках? Зато в итоге можно будет сделать сохранение не только дт, но и cf, cfe например |
@nixel2007 не сильно ли большое усложнение? Сейчас корректировка минимальна и решает конкретную задачу. Мне кажется в артефактах дженкинса база врятли вообще кому нить понадобится и плюс размер Дженкинса как правило не большой резервируется на виртуальных серверах. |
Архивировать результирующие файлы 1Cv8.1CD только, в случае если это была инициализация базы или возникла необходимость отмеченная в опции с помещением в stash.
Сейчас все подряд архивирует после отработки этапа и тратится время на это, а архив не используется.