openllb / hlb

A developer-first language to build and test any software efficiently
https://openllb.github.io/hlb/
Apache License 2.0
112 stars 12 forks source link
ast builder buildkit compiler containers docker dockerfile hlb llb oci oci-image

hlb

GoDoc License Test

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.

Getting started with HLB

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

Bring your own BuildKit

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

Language server

If your editor has a decent LSP plugin, HLB does support LSP over stdio via the hlb langserver subcommand.