Skip to content

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

Feature checklist

Make sure these are completed before closing the issue, with a link to the relevant commit.

Edited by Alessio Caiazza