Allow custom Auto DevOps CI template to be chosen and used instance wide
Problem to solve
GitLab Auto DevOps can be enabled for projects by default under Admin Area > Settings > Continuous Integration and Deployment. It can also be further enabled and disabled per repository. When enabled, a common GitLab CI template is used.
I would like to enable Auto DevOps instance wide, but I also need some customizations on Auto DevOps CI jobs to fit my organization's environment. I would like to specify a custom version of the Auto DevOps CI file for GitLab to use.
Further details
The Auto DevOps documentation describes how to create a customized .gitlab-ci.yml that modifies the CI/CD pipeline used by Auto DevOps. This is useful for customizing the pipeline for a single repository. But, it would be useful to do this globally for any repository using Auto DevOps.
For example, I have a custom version of the build() function used in Auto DevOps to build Docker images that can build and push specific stages in a multi-stage Dockerfile, configured via CI variables. This is common to multiple repositories. I want to be able to have this available by default for all projects with Auto DevOps enabled, instead of creating a .gitlab-ci.yml file in each repository, which requires manual work and effectively disables Auto DevOps from a GitLab settings perspective.
Proposal
GitLab administrators should be able to specify a custom GitLab CI file to use for Auto DevOps in Admin Area > Settings > Continuous Integration.
What does success look like, and how can we measure that?
If a custom GitLab CI file is specified for Auto DevOps, repositories that have Auto DevOps enabled should automatically use the custom version without relying on a local .gitlab-ci.yml file in the repository.