Skip to content

Draft: Extract Ci::PipelineBuilder concept to create an in-memory pipeline

Fabio Pitino requested to merge extract-pipeline-builder-step into master

What does this MR do and why?

Extract Ci::PipelineBuilder as a concept to create an in-memory pipeline.

Ci::PipelineBuilder will encapsulate all the pipeline creation steps until the StopDryRun (not included). This refactoring enables a few things:

  1. We could eventually use Ci::PipelineBuilder directly in Ci::Lint without having to use the whole Ci::CreatePipelineService.
  2. For Pipeline Execution Policies, we don't need to internally run Ci::CreatePipelineService to create in-memory policy pipelines. We could instead only run Ci::PipelineBuilder
  3. We could encapsulate the Ci::Config and YamlProcessor further inside Ci::PipelineBuilder. See for example Draft: Define `Ci::PipelineDraft` class to repr... (!153978) which builds on top of this MR.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Screenshots or screen recordings

Screenshots are required for UI changes, and strongly recommended for all other merge requests.

Before After

How to set up and validate locally

Numbered steps to set up and validate the change are strongly suggested.

Edited by Fabio Pitino

Merge request reports