Allow custom Auto DevOps CI template to be chosen and used instance wide

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

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.

Links / references

Edited by 🤖 GitLab Bot 🤖