generate-ci

generate-ci

GitLab CI pipeline generator for Kubernetes, Docker, and CDN deployments.

generate-ci turns a deploy.yaml file in your repo into a complete GitLab CI pipeline. You declare your services and where they deploy -- the tool handles Docker builds, test extensions, and multi-environment deployments automatically.

Just want to deploy? Jump to Getting Started — you can have a pipeline running in 5 minutes.

What you get

  • Zero CI/CD maintenance -- a four-line .gitlab-ci.yml template replaces hundreds of lines of hand-written pipeline YAML
  • Multi-environment deployments -- deploy the same service to dev, staging, and production with per-environment config
  • Multi-region support -- deploy to multiple AWS regions from a single service definition
  • Docker Bake builds -- parallel, cached multi-target builds using BuildKit with S3-backed cache
  • Built-in extensions -- unit tests, linting, SAST scanning, init containers, rollback, and preview environments
  • Config validation -- Pydantic schema validation of deploy.yaml with clear error messages before anything runs

How it works

  1. Add a deploy.yaml to your repo declaring your services and deployment targets
  2. Include a four-line .gitlab-ci.yml template that references the shared pipeline
  3. Push -- the pipeline builds your Docker images, runs tests, and deploys to the right infrastructure

The deploy type (Kubernetes via ArgoCD, Docker on EC2, or CDN via CloudFront) is determined automatically from the infrastructure configuration. You do not need to specify it.

User Guide

For contributors

Working on generate-ci itself? See the internal documentation:

  • Architecture -- pipeline generation internals, provider system, models, and project config
  • Contributing -- development setup, writing extensions, writing providers, and testing

On this page