Documentation Index
Fetch the complete documentation index at: https://buildcharts.dev/llms.txt
Use this file to discover all available pages before exploring further.
File layout
BuildCharts uses separate files for separate concerns.build.ymldefines repository-local build intent: targets, types, variables, and optional plugins.charts/buildcharts/Chart.yamlmaps those target types to versioned OCI-hosted chart implementations.charts/buildcharts/Chart.lockoptionally pins the resolved chart digests for repeatability and drift detection.
build.yml
This file defines variables, plugins, targets, and optional type matrices. Each target declares a type, but BuildCharts does not implement that type directly. Instead, it uses the type as an alias lookup into charts/buildcharts/Chart.yaml.
Example:
- Exactly one
buildtarget must be defined. - Every target
typemust match an alias declared incharts/buildcharts/Chart.yaml. - Plugins run during generation, not during Bake execution.
charts/buildcharts/Chart.yaml
This file maps each target alias to a versioned OCI chart. The alias is the contract between repo-local intent and shared implementation.
buildcharts update resolves those dependencies and can record the resolved digests in Chart.lock.
charts/buildcharts/Chart.lock
This file is optional. When it exists, buildcharts generate validates it against Chart.yaml and the registry digest unless --ignore-lock is used. This keeps chart version selection flexible in Chart.yaml while still pinning the exact artifact used during generation.
Example:
Generation flow
Duringbuildcharts generate, BuildCharts acts as a generator:
- It removes the previous
.buildchartsoutput. - It reads
build.yml,Chart.yaml, andChart.lockif it exists. - It validates the build target count, target aliases, and lock file state.
- It pulls or reuses the OCI chart artifacts referenced by
Chart.yaml. - It materializes chart contents under
.buildcharts. - It runs each configured plugin.
- It writes
.buildcharts/docker-bake.hcl.
Execution flow
After generation, execution flows through Docker Buildx Bake and BuildKit:- BuildCharts writes the generated HCL.
- Docker Buildx Bake reads the generated Bake file.
- BuildKit executes the selected targets.
