Persist CI `config_content` when pipeline is being created
Problem
Pipeline creation does not only depend on the version of the .gitlab-ci.yml
file. There are several factors/use cases that are at play here:
- the value of the
project.ci_config_path
can influence where the CI configuration comes from - whether an Auto-Devops template was used because of the absence of
.gitlab-ci.yml
- when a child pipeline (downstream pipeline for same project) is created, the parent pipeline (upstream) will pass in a snippet of yaml configuration
We don't have a way to inspect in the database what else contributed to have the current pipeline.
Solution
We should persist the config_content
being used during the pipeline creation.
From !20179 (comment 253420244)
We could extract this into a separate table called
ci_pipeline_config(id, pipeline_id, content, created_at)
withCi::Pipeline has_one Ci::Pipeline::Config
.
Related to issue: #14376 (closed)