Fix: Архивировать результирующие файлы 1Cv8.1CD только используемые#175
Fix: Архивировать результирующие файлы 1Cv8.1CD только используемые#175Kyrales wants to merge 5 commits intofirstBitMarksistskaya:developfrom
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.
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.
Сейчас все подряд архивирует после отработки этапа и тратится время на это, а архив не используется.