hlb
is a high-level build language for BuildKit.
Describe your build in containerized units of work, and BuildKit will build your target as efficiently as possible.
If you're on a MacOS or Linux (linux-amd64
), head on over to Releases to grab a static binary.
Otherwise, you can compile HLB yourself using go:
git clone https://github.com/openllb/hlb.git
cd hlb
go install ./cmd/hlb
Then you can run one of the examples in ./examples
:
hlb run ./examples/node.hlb
By default, HLB uses the BuildKit embedded in a docker engine. HLB supports BUILDKIT_HOST
the same way buildctl
does, so you can run BuildKit in a container and connect to it:
docker run -d --name buildkitd --privileged moby/buildkit:master
export BUILDKIT_HOST=docker-container://buildkitd
hlb run ./examples/node.hlb
If your editor has a decent LSP plugin, HLB does support LSP over stdio via the hlb langserver
subcommand.