buildcharts is a tool for defining build intent in build.yml and turning that metadata into a Docker Buildx Bake plan. You keep build definitions in your repo, pull reusable chart templates from an OCI registry, and run the same generated plan locally or in CI.
It sits between handwritten pipeline YAML and raw Dockerfiles. You declare what should happen, BuildCharts resolves the chart-backed implementation, and Docker Buildx Bake executes the generated plan.
BuildCharts is designed for teams that want to standardize builds across many repositories without locking themselves into one CI provider. The model is simple:
- intent stays in repository metadata
- implementation lives in versioned OCI charts
- execution runs through Docker Buildx Bake
That gives you a portable build layer that can be debugged locally and reused across repositories.
If you already know Helm, the comparison is useful: both Helm and BuildCharts use versioned charts that can be distributed through OCI registries. The difference is what the chart controls. Helm charts describe deployments to Kubernetes. BuildCharts charts describe build stages that are rendered into a Docker Buildx Bake plan.
What problem it solves
BuildCharts exists to reduce common CI/CD problems such as:
- duplicated or nested pipeline YAML across many repositories
- platform-specific pipeline logic that is hard to move between providers
- fragile template rollouts where repositories drift onto different versions
- poor local debuggability, where troubleshooting requires repeated CI runs
Instead of copying CI steps repo by repo, teams can centralize the build implementation in charts and let repositories consume versioned updates through normal dependency changes.
What you define
src/
├── build.yml # Build metadata
├── charts/
│ └── buildcharts/
│ └── Chart.yaml # Chart dependency data
What BuildCharts generates
.buildcharts/docker-bake.hcl from your metadata and chart dependencies
Workflow
- Create or scaffold
build.yml and charts/buildcharts/Chart.yaml.
- Run
buildcharts update if you want a fresh Chart.lock.
- Run
buildcharts generate.
- Run
docker buildx bake --file .buildcharts/docker-bake.hcl.
Why use it
- Keep CI logic in versioned OCI charts instead of copying pipeline YAML across repos.
- Run the same generated build plan locally and in CI.
- Keep repository config lightweight by separating intent in
build.yml from implementation in charts.
- Stay provider-agnostic by generating Docker-native build plans instead of provider-specific steps.
- Adopt chart updates gradually with versioned dependencies and optional lock files.
- Describe intent with aliases such as
build, test, nuget, and docker.
- Extend generation with built-in plugins.
Last modified on March 15, 2026