Create a .gitlab-ci.yml file for Auto DevOps
Description
As part of Auto Devops (#37115 (closed)), we need a .gitlab-ci.yml
file that will be vendored with GitLab and provides CI/CD configuration for all the projects that don't have one. This file will be hidden and used internally as defined in #34777 (closed), but will also be exposed if users want to customize it (making it an explicit file, that will be then pushed to the repo), so the syntax should be exactly a standard .gitlab-ci.yml
file.
File will be created in https://gitlab.com/gitlab-org/gitlab-ci-yml so it will be automatically added as a template, and it should be the first in the list to make it more visible. In the future, this could replace all the templates available, as soon as they are integrated into Auto DevOps.
Proposal
We want a file that includes all the steps needed by Auto DevOps, with specific cases where deployment is skipped if we don't have a k8s cluster configured.
High level description of each stage can be found in #37115 (closed), here is the checklist for things that should be implemented in the configuration.
-
Auto Build -
Run herokuish image to build applications using herokuish buildpack build
-
Support Dockerfiles based applications
-
-
Auto Test -
Run herokuish image to build applications using herokuish buildpack test
-
-
Auto Code Quality -
Run CodeClimate image to create code quality report
-
-
Auto Review Apps -
Auto Deploy -
Support PRODUCTION_REPLICAS and *_REPLICAS -
Use Helm -
Use custom Helm charts
-
Links / references
- Auto DevOps: #35712 (closed)
- Auto DevOps (Beta): #37115 (closed)
- #34777 (closed)
- #34785 (closed)
Feature checklist
Make sure these are completed before closing the issue, with a link to the relevant commit.
-
Feature assurance -
Documentation -
Added to features.yml