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.ymltemplate 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.yamlwith clear error messages before anything runs
How it works
- Add a
deploy.yamlto your repo declaring your services and deployment targets - Include a four-line
.gitlab-ci.ymltemplate that references the shared pipeline - 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
Getting Started
Prerequisites, setup, and your first deployment.
Configuration
Complete deploy.yaml reference, services, ingress, resources, and more.
Extensions
Unit tests, linting, SAST, rollback, preview environments, and init containers.
Deployment
Provider details for ArgoCD, Docker, and CDN deployments.
Guides
Migration guides, secrets management, custom ingress, and troubleshooting.
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