Centrally managed pipeline applied to all projects within a group
The use-case is a group that contains a large number of projects that should be validated in the same way. For example a group could represent an assignment and each student could be given a project in which to submit their code (or even latex). The student should not need to setup or have the opportunity to change the CI pipeline, but it should be applied to all projects within the group.
To keep things consistent the pipeline could be provided by a "special" project contained within the group (or perhaps if it makes sense a parent group). The pipeline would only be triggered to run on individual project pushes and not when the project containing the pipeline is updated.
Effectively, need one thing:
- Group level setting to specify a group wide "shadow project" or template (or standard naming scheme).
The individual projects would be treated as if the .gitlab-ci.yml from the shadow project existing within their own. Preferably a configuration option should prevent individual projects from providing a gitlab-ci.yml or it would be ignored if present. Alternatively, allowing merging, or overriding with the shadow as a default could also be allowed.
It does not seem necessary to clone the shadow project during execution of the pipeline, but could be something to consider for providing scripts to go along with pipeline. Obviously there are ways around that or it could be done manually if desired.
This concept applies to any set of projects that need to be processed identically where it makes sense to centrally manage the pipeline rather than have each individual project include a copy of pipeline. Kinda like a template that is applied to all projects within a group automatically.
For the "simplest thing that can work" I would suggest picking a reserved project name like gitlab-ci in which the gitlab-ci.yml will be applied to all projects within that group. Extra stuff like preventing projects from overriding or merging, etc can be considered later.
This concept opens up a large number of possibilities and I look forward to your thoughts.