Composable Auto DevOps
Problem to solve
We want Auto DevOps to cover ample CI use cases so that its usage and value increase; while Auto DevOps allows for customization of the CI template, it's not intuitive nor easy. The existing template is close to 1000 lines of yml which can be daunting to customize.
Additionally, users who fork and customize the Auto DevOps template miss out on any updates made by GitLab.
Sasha, Software Developer, https://design.gitlab.com/research/personas#persona-sasha /label Persona: Software developer
Devon, DevOps Engineer, https://design.gitlab.com/research/personas#persona-devon /label Persona: DevOps Engineer
As a user I want to use my own "build" stage in
gitlab-ci.ymlas I've fined-tuned it to be efficient for my application, but I want to use the rest of the Auto DevOps stages.
As a user I want to be able to add a an extra step to the
teststage of my Auto DevOps pipeline to run additional custom validations (eg. browser testing, custom linting)"
As a user I want to be able to write my own
.gitlab-ci.ymlbut I'd like to be able to easily add in the security jobs that are available in Auto DevOps without having to copy from the template and keep my copy up to date with changes in GitLab"
As a user, I want to be able to remove a step from my Auto DevOps pipeline (because I don't need it or I know it doesn't work)
Break out each stage of Auto DevOps into its own template, so that I can pick which parts of it I'd like to use. For example, if I want to use my own build but every other stage from Auto DevOps I could use
build: stage: build image: my-build-image script: - ./my-fast-build include: - template: Build.gitlab-ci.yml - template: Test.gitlab-ci.yml - template: Code-Quality.gitlab-ci.yml - template: SAST.gitlab-ci.yml - template: Dependency-Scanning.gitlab-ci.yml - template: License-Management.gitlab-ci.yml - template: Container-Scanning.gitlab-ci.yml - template: Review-Apps.gitlab-ci.yml - template: DAST.gitlab-ci.yml - template: Deploy.gitlab-ci.yml - template: Browser-Performance-Testing.gitlab-ci.yml - template: Monitoring.gitlab-ci.yml
Security product stages will be templated as part of &581 (closed)
~configure team will template the remaining stages:
- template: Build.gitlab-ci.yml
- template: Test.gitlab-ci.yml
- template: Code-Quality.gitlab-ci.yml
- template: Review-Apps.gitlab-ci.yml
- template: Deploy.gitlab-ci.yml
- template: Browser-Performance-Testing.gitlab-ci.yml
- template: Monitoring.gitlab-ci.yml
What does success look like, and how can we measure that?
Increased usage of Auto DevOps, measures by existing metrics
Links / references