Loading
Collect catalog bundles instead of compiling them
What does this MR do and why?
Replaces compiled (flattened) catalog bundles with collected ones: each component's files are stored as authored. Nothing calls these services yet; wiring into publishing comes in a follow-up MR.
Gitlab::Ci::Catalog::Bundle::Formatdumps bundle format version 1 as JSON, keeping the collected YAML as opaque strings so files round-trip byte for byteCi::Catalog::Resources::Bundle::CollectServicereplacesCompileService, returning one bundle per component or every rejection prefixed with its component nameCi::Catalog::BundledResources::CollectAndStoreService(renamed fromCompileAndStoreService) stores the bundles, rejects non-public projects because any project on a Cell can read a bundle, and does nothing for an already collected versionCollectAndStoreService#prepareand#persistare public, so publishing can upload before its transaction and write the rows inside itBundle::ObjectKeynames objects<component>.json, uploaded asapplication/json- Removes
Bundle::Compiler,CompileServiceand their specs, since collection supersedes them
References
- Related to #630810 (closed)
- Previous MR, which added
Bundle::Collector: !259106 (merged)
How to set up and validate locally
bundle exec rspec spec/lib/gitlab/ci/catalog/bundle/format_spec.rb spec/services/ci/catalog/resources/bundle/collect_service_spec.rb spec/services/ci/catalog/bundled_resources/collect_and_store_service_spec.rb spec/lib/gitlab/ci/catalog/bundle/object_key_spec.rb spec/uploaders/ci/catalog/bundled_resources/component_uploader_spec.rb
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist.