earthbuild

module
v0.8.18-rc-1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 15, 2026 License: MPL-2.0

README ΒΆ

EarthBuild

This is a community fork of Earthly!

This community fork is endorsed and supported by earthly. We're actively working on migrating things like the website and the CI to community versions.

Contributions welcome!

If you're interested in understanding why the community fork is happening, this issue has a relevant discussion.


EarthBuild

It's like Docker for builds

GitHub Actions CI Join the chat on Slack Docs Website Install EarthBuild Docker Hub License MPL-2

Open in GitHub Codespaces

πŸ” Repeatable Builds - Write builds once, and run them anywhere – on your laptop, remote, and in any CI.

❀️ Super Simple - Instantly recognizable syntax – like Dockerfile and Makefile had a baby.

πŸ›  Compatible with Every Language, Framework, and Build Tool - If it runs on Linux, it runs on EarthBuild.

🏘 Great for Monorepos and Polyrepos - Organize your build logic however makes the most sense for your project.

πŸ’¨ Fast Builds - Build caching and parallel execution makes builds fast automatically.

♻️ Reuse, Don't Repeat - Never write the same code in multiple builds again.


🌎 EarthBuild is a versatile, approachable CI/CD framework that runs every pipeline inside containers, giving you repeatable builds that you write once and run anywhere. It has a super simple, instantly recognizable syntax that is easy to write and understand – like Dockerfile and Makefile had a baby. And it leverages and augments popular build tools instead of replacing them, so you don't have to rewrite all your builds no matter what languages you use.

Get EarthBuild

Table of Contents

Why Use EarthBuild?

πŸ” Repeatable Builds

EarthBuild runs all builds in containers, making them self-contained, isolated, repeatable, and portable. This allows for faster iteration on build scripts and easier debugging when something goes wrong – no more git commit -m "try again". When you write a build, you know it will execute correctly no matter where it runs – your laptop, a colleague's laptop, or any CI. You don't have to configure language-specific tooling, install additional dependencies, or complicate your build scripts to ensure they are compatible with different OSs. EarthBuild gives you consistent, repeatable builds regardless of where they run.

❀️ Super Simple

EarthBuild's syntax is easy to write and understand. Most engineers can read an Earthfile instantly, without prior knowledge of EarthBuild. We combined some of the best ideas from Dockerfiles and Makefiles into one specification – like Dockerfile and Makefile had a baby.

πŸ›  Compatible with Every Language, Framework, and Build Tool

EarthBuild works with the compilers and build tools you use. If it runs on Linux, it runs on EarthBuild. And you don't have to rewrite your existing builds or replace your package.json, go.mod, build.gradle, or Cargo.toml files. You can use EarthBuild as a wrapper around your existing tooling and still get EarthBuild's repeatable builds, parallel execution, and build caching.

🏘 Great for Monorepos and Polyrepos

EarthBuild is great for both monorepos and polyrepos. You can split your build logic across multiple Earthfiles, placing some deeper inside the directory structure or even in other repositories. Referencing targets from other Earthfiles is easy regardless of where they are stored. So you can organize your build logic however makes the most sense for your project.

πŸ’¨ Fast Builds

EarthBuild automatically executes build targets in parallel and makes maximum use of cache. This makes builds fast. EarthBuild also has powerful shared caching capabilities that speed up builds frequently run across a team or in sandboxed environments, such as remote BuildKits, GitHub Actions, or your CI.

If your build has multiple steps, EarthBuild will:

  1. Build a directed acyclic graph (DAG).
  2. Isolate execution of each step.
  3. Run independent steps in parallel.
  4. Cache results for future use.
♻️ Reuse, Don't Repeat

Never have to write the same code in multiple builds again. With EarthBuild, you can reuse targets, artifacts, and images across multiple Earthfiles, even ones in other repositories, in a single line. EarthBuild is cache-aware, based on the individual hashes of each file, and has shared caching capabilities. So you can create a vast and efficient build hierarchy that only executes the minimum required steps.

Where Does EarthBuild Fit?

EarthBuild fits between language-specific tooling and the CI

EarthBuild is meant to be used both on your development machine and in CI. It runs on top of your CI/CD platform (such as Jenkins, Circle CI, GitHub Actions, and GitLab CI/CD). EarthBuild provides the benefits of a modern build automation system wherever it runs – such as caching and parallelism. It is a glue layer between language-specific build tooling (like maven, gradle, npm, pip, go build) and CI, working like a wrapper around your build tooling and build logic that isolates build execution from the environments they run in.

How Does It Work?

In short: containers, layer caching, and complex build graphs!

EarthBuild executes builds in containers, where execution is isolated. The dependencies of the build are explicitly specified in the build definition, thus making the build self-sufficient.

We use a target-based system to help users break up complex builds into reusable parts. Nothing is shared between targets other than clearly declared dependencies. Nothing shared means no unexpected race conditions. In fact, the build is executed in parallel whenever possible, without any need for the user to take care of any locking or unexpected environment interactions.

ℹ️ Note Earthfiles might seem very similar to Dockerfile multi-stage builds. In fact, the same technology is used underneath. However, a key difference is that EarthBuild is designed to be a general-purpose build system, not just a Docker image specification. Read more about how EarthBuild is different from Dockerfiles.

Installation

See installation instructions.

To build from source, check the contributing page.

Quick Start

Here are some resources to get you started with EarthBuild

See also the full documentation.

Reference pages

A simple example (for Go)
# Earthfile
VERSION 0.8
FROM golang:1.15-alpine3.13
RUN apk --no-cache add git
WORKDIR /go-example

all:
  BUILD +lint
  BUILD +docker

build:
  COPY main.go .
  RUN go build -o build/go-example main.go
  SAVE ARTIFACT build/go-example AS LOCAL build/go-example

lint:
  RUN go get golang.org/x/lint/golint
  COPY main.go .
  RUN golint -set_exit_status ./...

docker:
  COPY +build/go-example .
  ENTRYPOINT ["/go-example/go-example"]
  SAVE IMAGE go-example:latest
// main.go
package main

import "fmt"

func main() {
  fmt.Println("hello world")
}

Invoke the build using earth +all.

Demonstration of a simple earth build

Examples for other languages are available in the examples dir.

Features

β›“ Parallelization that just works

Whenever possible, EarthBuild automatically executes targets in parallel.

Demonstration of EarthBuild's parallelization
πŸ’Ύ Caching that works the same as Docker builds
Demonstration of EarthBuild's caching
πŸ›  Multi-platform support

Build for multiple platforms in parallel.

VERSION 0.8
all:
    BUILD \
        --platform=linux/amd64 \
        --platform=linux/arm64 \
        --platform=linux/arm/v7 \
        --platform=linux/arm/v6 \
        +build

build:
    FROM alpine:3.18
    CMD ["uname", "-m"]
    SAVE IMAGE multiplatform-image
🀲 Build tools that work everywhere

No need to ask your team to install protoc, a specific version of Python, Java 1.6, or the .NET Core ecosystem. Install once in your Earthfile, and it works for everyone. Or even better, you can just make use of the rich Docker Hub ecosystem.

VERSION 0.8
FROM golang:1.15-alpine3.13
WORKDIR /proto-example

proto:
  FROM namely/protoc-all:1.29_4
  COPY api.proto /defs
  RUN --entrypoint -- -f api.proto -l go
  SAVE ARTIFACT ./gen/pb-go /pb AS LOCAL pb

build:
  COPY go.mod go.sum .
  RUN go mod download
  COPY +proto/pb pb
  COPY main.go ./
  RUN go build -o build/proto-example main.go
  SAVE ARTIFACT build/proto-example

See full example code.

πŸ“¦ Modern import system

EarthBuild can be used to reference and build targets from other directories or even other repositories. For example, if we wanted to build an example target from a repository, we could issue

# Try it yourself! No need to clone.
earthbuild github.com/earthbuild/earthbuild/examples/go:main+docker
# Run the resulting image.
docker run --rm earthbuild/examples:go
πŸ”¨ Reference other targets using +

Use + to reference other targets and create complex build inter-dependencies.

Target and artifact reference syntax

Examples

  • Same directory (same Earthfile)

    BUILD +some-target
    FROM +some-target
    COPY +some-target/my-artifact ./
    
  • Other directories

    BUILD ./some/local/path+some-target
    FROM ./some/local/path+some-target
    COPY ./some/local/path+some-target/my-artifact ./
    
  • Other repositories

    BUILD github.com/someone/someproject:v1.2.3+some-target
    FROM github.com/someone/someproject:v1.2.3+some-target
    COPY github.com/someone/someproject:v1.2.3+some-target/my-artifact ./
    
πŸ”‘ Secrets support built-in

Secrets are never stored within an image's layers and they are only available to the commands that need them.

earth set /user/github/token 'shhh...'
release:
  RUN --push --secret GITHUB_TOKEN=user/github/token github-release upload file.bin

FAQ

How is EarthBuild different from Dockerfiles?

Dockerfiles were designed for specifying the make-up of Docker images and that's where Dockerfiles stop. EarthBuild takes some key principles of Dockerfiles (like layer caching) but expands on the use cases. For example, EarthBuild can output regular artifacts, run unit and integration tests, and create several Docker images at a time - all outside the scope of Dockerfiles.

It is possible to use Dockerfiles in combination with other technologies (e.g., Makefiles or bash files) to solve such use cases. However, these combinations are difficult to parallelize, challenging to scale across repositories as they lack a robust import system, and often vary in style from one team to another. EarthBuild does not have these limitations as it was designed as a general-purpose build system.

For example, EarthBuild introduces a richer target, artifact, and image referencing system, allowing for better reuse in complex builds spanning a single large repository or multiple repositories. Because Dockerfiles are only meant to describe one image at a time, such features are outside the scope of applicability of Dockerfiles.

How do I know if a command is a classic Dockerfile command or an EarthBuild command?

Check out the Earthfile reference doc page. It has all the commands there and specifies which commands are the same as Dockerfile commands and which are new.

Can EarthBuild build Dockerfiles?

Yes! You can use the command FROM DOCKERFILE to inherit the commands in an existing Dockerfile.

build:
  FROM DOCKERFILE .
  SAVE IMAGE some-image:latest

You may also optionally port your Dockerfiles to EarthBuild entirely. Translating Dockerfiles to Earthfiles is usually a matter of copy-pasting and making minor adjustments. See the getting started page for some Earthfile examples.

How is EarthBuild different from Bazel?

Bazel is a build tool developed by Google to optimize the speed, correctness, and reproducibility of their internal monorepo codebase. The main difference between Bazel and EarthBuild is that Bazel is a build system, whereas EarthBuild is a general-purpose CI/CD framework. For a more in-depth explanation see our FAQ.

Contributing

  • Please report bugs as GitHub issues.
  • Join us on Slack!
  • Questions via GitHub issues are welcome!
  • PRs welcome! But please give a heads-up in a GitHub issue before starting work. If there is no GitHub issue for what you want to do, please create one.
  • To build from source, check the contributing page.

Licensing

EarthBuild is licensed under the Mozilla Public License Version 2.0. See LICENSE.

Directories ΒΆ

Path Synopsis
ast module
Package autocomplete implements dynamic shell auto-completion logic for earth targets, commands, and options.
Package autocomplete implements dynamic shell auto-completion logic for earth targets, commands, and options.
Package buildcontext implements resolution and loading of remote and local Earthfiles, handling Git lookups and file matching.
Package buildcontext implements resolution and loading of remote and local Earthfiles, handling Git lookups and file matching.
provider
Package provider is heavily based on fsSyncProvider in github.com/moby/buildkit/session/filesync.
Package provider is heavily based on fsSyncProvider in github.com/moby/buildkit/session/filesync.
Package builder orchestrates the top-level resolution and execution of earth targets and commands.
Package builder orchestrates the top-level resolution and execution of earth targets and commands.
Package buildkitd manages the lifecycle of the embedded or remote Buildkit daemon used by earth.
Package buildkitd manages the lifecycle of the embedded or remote Buildkit daemon used by earth.
Package cleanup manages a collection of deferred functions to ensure proper resource cleanup upon application exit.
Package cleanup manages a collection of deferred functions to ensure proper resource cleanup upon application exit.
cmd
debugger command
Package main provides the standalone earth debugger executable.
Package main provides the standalone earth debugger executable.
earthly command
Package main is the primary entry point for the earth CLI executable.
Package main is the primary entry point for the earth CLI executable.
earthly/app
Package app encapsulates the core earth command-line application logic, handling initialization and execution.
Package app encapsulates the core earth command-line application logic, handling initialization and execution.
earthly/base
Package base defines the core CLI framework, lifecycle hooks, and initialization routines for earth.
Package base defines the core CLI framework, lifecycle hooks, and initialization routines for earth.
earthly/bk
Package bk provides initialization and management of the Buildkit skipping mechanisms for the CLI.
Package bk provides initialization and management of the Buildkit skipping mechanisms for the CLI.
earthly/common
Package common provides shared utilities and functions utilized across multiple earth subcommands.
Package common provides shared utilities and functions utilized across multiple earth subcommands.
earthly/disable_alpn
Package disable_alpn sets GRPC_ENFORCE_ALPN_ENABLED environment variable to false during initialization.
Package disable_alpn sets GRPC_ENFORCE_ALPN_ENABLED environment variable to false during initialization.
earthly/flag
Package flag centralizes the definition of global CLI flags used across various earth subcommands.
Package flag centralizes the definition of global CLI flags used across various earth subcommands.
earthly/helper
Package helper provides CLI helper functions, including shell auto-completion for earth commands.
Package helper provides CLI helper functions, including shell auto-completion for earth commands.
earthly/subcmd
Package subcmd defines the various earth CLI subcommands (e.g., build, prune, init, debug) and their specific logic.
Package subcmd defines the various earth CLI subcommands (e.g., build, prune, init, debug) and their specific logic.
Package config manages earth's global and repository-level configuration, handling YAML parsing and default values.
Package config manages earth's global and repository-level configuration, handling YAML parsing and default values.
Package conslogging provides specialized console logging implementations, including colorized output, buffered logging, and progress reporting for earth builds.
Package conslogging provides specialized console logging implementations, including colorized output, buffered logging, and progress reporting for earth builds.
debugger
common
Package common defines shared types and serialization protocols used between the earth debugger client and server.
Package common defines shared types and serialization protocols used between the earth debugger client and server.
server
Package server implements the earth debugger server, managing incoming debug sessions and interacting with the solver.
Package server implements the earth debugger server, managing incoming debug sessions and interacting with the solver.
terminal
Package terminal manages interactive terminal connections for debugging active earth builds.
Package terminal manages interactive terminal connections for debugging active earth builds.
Package docker2earth implements the translation logic to convert standard Dockerfiles into equivalent Earthfiles.
Package docker2earth implements the translation logic to convert standard Dockerfiles into equivalent Earthfiles.
Package dockertar handles the extraction and parsing of Docker image tarballs to retrieve image metadata and IDs.
Package dockertar handles the extraction and parsing of Docker image tarballs to retrieve image metadata and IDs.
Package domain defines core earth concepts such as targets, artifacts, commands, and import trackers, including their parsing logic.
Package domain defines core earth concepts such as targets, artifacts, commands, and import trackers, including their parsing logic.
Package earthfile2llb converts parsed Earthfile ASTs into Buildkit Low-Level Builder (LLB) graphs for execution.
Package earthfile2llb converts parsed Earthfile ASTs into Buildkit Low-Level Builder (LLB) graphs for execution.
cmdopts
Package cmdopts contains option structures for Earthfile commands.
Package cmdopts contains option structures for Earthfile commands.
examples
multiplatform-cross-compile command
Package main provides a Go application demonstrating multi-platform cross-compilation with earth.
Package main provides a Go application demonstrating multi-platform cross-compilation with earth.
readme/go1 command
Package main is a simple Go program used in earth's basic README examples.
Package main is a simple Go program used in earth's basic README examples.
readme/go2 command
Package main is a simple Go program used in earth's basic README examples.
Package main is a simple Go program used in earth's basic README examples.
tutorial/go/part1 command
Package main provides the foundational Go application for the earth tutorial series.
Package main provides the foundational Go application for the earth tutorial series.
tutorial/go/part2 command
Package main demonstrates advanced earth tutorial concepts in a Go application.
Package main demonstrates advanced earth tutorial concepts in a Go application.
tutorial/go/part5 command
Package main demonstrates advanced earth tutorial concepts in a Go application.
Package main demonstrates advanced earth tutorial concepts in a Go application.
Package features manages version-specific feature flags and backward compatibility layers for earth.
Package features manages version-specific feature flags and backward compatibility layers for earth.
Package inputgraph implements dependency graph generation and cache-key hashing for earth targets without requiring full evaluation.
Package inputgraph implements dependency graph generation and cache-key hashing for earth targets without requiring full evaluation.
internal
earthfile
Package earthfile defines the core Earthfile AST structure and provides parsing entry points.
Package earthfile defines the core Earthfile AST structure and provides parsing entry points.
env
Package env provides helpers for reading earth's environment variables, including backwards-compatible support for the deprecated EARTHLY_ prefix.
Package env provides helpers for reading earth's environment variables, including backwards-compatible support for the deprecated EARTHLY_ prefix.
files
Package files provides utilities for secure and robust filesystem operations.
Package files provides utilities for secure and robust filesystem operations.
telemetry
Package telemetry implements OpenTelemetry tracing and metrics collection for EarthlBuild's internal operations.
Package telemetry implements OpenTelemetry tracing and metrics collection for EarthlBuild's internal operations.
telemetry/semconv
Package semconv defines OpenTelemetry semantic conventions for earth's telemetry data.
Package semconv defines OpenTelemetry semantic conventions for earth's telemetry data.
version
Package version holds earth's version strings and build information injected at compile time.
Package version holds earth's version strings and build information injected at compile time.
Package logbus provides a pub-sub event bus for routing build logs, telemetry, and progress events to various subscribers.
Package logbus provides a pub-sub event bus for routing build logs, telemetry, and progress events to various subscribers.
formatter
Package formatter implements specialized formatting logic for translating logbus events into human-readable console output.
Package formatter implements specialized formatting logic for translating logbus events into human-readable console output.
setup
Package setup provides initialization functions for creating and configuring the central logbus instance.
Package setup provides initialization functions for creating and configuring the central logbus instance.
solvermon
Package solvermon monitors the progress of buildkit solvers, tracking operations and identifying fatal errors.
Package solvermon monitors the progress of buildkit solvers, tracking operations and identifying fatal errors.
writersub
Package writersub implements logbus subscribers that format and write log streams to standard output or files.
Package writersub implements logbus subscribers that format and write log streams to standard output or files.
Package regproxy provides a local registry proxy controller to handle authenticated container image pulls within builds.
Package regproxy provides a local registry proxy controller to handle authenticated container image pulls within builds.
scripts
unit-test-parser command
Package main provides a script for parsing and transforming unit test output.
Package main provides a script for parsing and transforming unit test output.
Package slog is a structured logging library which is for use by shellrepeater or any other servers, it should not be used by commands that are run directly by users (e.g.
Package slog is a structured logging library which is for use by shellrepeater or any other servers, it should not be used by commands that are run directly by users (e.g.
Package states manages the resolution and execution states of Earthfile targets, maintaining caches, tracking imports, and coordinating solvers.
Package states manages the resolution and execution states of Earthfile targets, maintaining caches, tracking imports, and coordinating solvers.
dedup
Package dedup provides target and build arg deduplication for earth's build states, ensuring identical targets are not evaluated multiple times.
Package dedup provides target and build arg deduplication for earth's build states, ensuring identical targets are not evaluated multiple times.
image
Package image provides data structures and logic for representing and manipulating container images within the build state.
Package image provides data structures and logic for representing and manipulating container images within the build state.
util
buildkitskipper
Package buildkitskipper manages the detection and skipping of redundant buildkit executions for previously built local artifacts.
Package buildkitskipper manages the detection and skipping of redundant buildkit executions for previously built local artifacts.
buildkitskipper/hasher
Package hasher implements deterministic hashing for build targets and their inputs to support cache keys.
Package hasher implements deterministic hashing for build targets and their inputs to support cache keys.
buildkitutil
Package buildkitutil offers utility functions for formatting and interacting with buildkit utilization metrics.
Package buildkitutil offers utility functions for formatting and interacting with buildkit utilization metrics.
circbuf
Package circbuf provides an in-memory circular buffer implementation to bound the size of captured log streams.
Package circbuf provides an in-memory circular buffer implementation to bound the size of captured log streams.
cliutil
Package cliutil provides generic CLI utilities such as directory discovery, permission checking, and bootstrap verification.
Package cliutil provides generic CLI utilities such as directory discovery, permission checking, and bootstrap verification.
containerutil
Package containerutil provides unified interfaces and frontend implementations (Docker, Podman) for interacting with container runtimes.
Package containerutil provides unified interfaces and frontend implementations (Docker, Podman) for interacting with container runtimes.
deltautil
Package deltautil handles the application of delta manifests for optimized remote caching and artifact transfer.
Package deltautil handles the application of delta manifests for optimized remote caching and artifact transfer.
dockerutil
Package dockerutil provides utilities for loading and parsing Docker image manifests and tarballs.
Package dockerutil provides utilities for loading and parsing Docker image manifests and tarballs.
errutil
Package errutil provides functions for parsing and extracting specialized error details, such as Git stderr logs.
Package errutil provides functions for parsing and extracting specialized error details, such as Git stderr logs.
execstatssummary
Package execstatssummary provides mechanisms to track and summarize execution statistics across build steps.
Package execstatssummary provides mechanisms to track and summarize execution statistics across build steps.
fileutil
Package fileutil contains robust cross-platform utilities for file and directory checks, path expansion,\ and globbing.
Package fileutil contains robust cross-platform utilities for file and directory checks, path expansion,\ and globbing.
flagutil
Package flagutil provides utilities for parsing and preprocessing complex CLI flags, including byte sizes and durations.
Package flagutil provides utilities for parsing and preprocessing complex CLI flags, including byte sizes and durations.
fsutilprogress
Package fsutilprogress implements progress callbacks and tracking for file system operations.
Package fsutilprogress implements progress callbacks and tracking for file system operations.
gatewaycrafter
Package gatewaycrafter coordinates the crafting of buildkit gateway requests, managing artifact exports, image pushes, and local output summaries.
Package gatewaycrafter coordinates the crafting of buildkit gateway requests, managing artifact exports, image pushes, and local output summaries.
gitutil
Package gitutil offers utilities for parsing and extracting Git repository metadata, branch names, tags, and clone URLs.
Package gitutil offers utilities for parsing and extracting Git repository metadata, branch names, tags, and clone URLs.
gwclientlogger
Package gwclientlogger provides a specialized logger for Buildkit gateway clients.
Package gwclientlogger provides a specialized logger for Buildkit gateway clients.
hint
Package hint provides an error wrapping mechanism that allows attaching actionable hints and contextual messages to errors.
Package hint provides an error wrapping mechanism that allows attaching actionable hints and contextual messages to errors.
inodeutil
Package inodeutil provides cross-platform functions for retrieving file system inodes on a best-effort basis.
Package inodeutil provides cross-platform functions for retrieving file system inodes on a best-effort basis.
llbutil
Package llbutil offers helper functions for manipulating and creating Low-Level Builder (LLB) operations and dependencies.
Package llbutil offers helper functions for manipulating and creating Low-Level Builder (LLB) operations and dependencies.
llbutil/authprovider
Package authprovider manages registry and token authentication for buildkit sessions, supporting multiple providers and Podman.
Package authprovider manages registry and token authentication for buildkit sessions, supporting multiple providers and Podman.
llbutil/llbfactory
Package llbfactory constructs LLB (Low-Level Builder) graphs for local files and preconstructed states.
Package llbfactory constructs LLB (Low-Level Builder) graphs for local files and preconstructed states.
llbutil/pllb
Package pllb is a wrapper around llb, which makes it compatible with concurrent code.
Package pllb is a wrapper around llb, which makes it compatible with concurrent code.
llbutil/secretprovider
Package secretprovider implements mechanisms to supply secrets (like AWS credentials) securely to the buildkit solver.
Package secretprovider implements mechanisms to supply secrets (like AWS credentials) securely to the buildkit solver.
oidcutil
Package oidcutil offers parsing and formatting utilities for AWS OIDC authentication information.
Package oidcutil offers parsing and formatting utilities for AWS OIDC authentication information.
params
Package params implements parameter parsing errors and wrapping mechanisms for target arguments.
Package params implements parameter parsing errors and wrapping mechanisms for target arguments.
parseutil
Package parseutil provides functions for parsing string representations into structured Go maps.
Package parseutil provides functions for parsing string representations into structured Go maps.
platutil
Package platutil handles platform resolution, parsing, and architecture mapping for multi-platform build targets.
Package platutil handles platform resolution, parsing, and architecture mapping for multi-platform build targets.
progressbar
Package progressbar implements console-based progress bars for long-running operations.
Package progressbar implements console-based progress bars for long-running operations.
proj
Package proj contains types and functions for managing a project's Earthfile(s).
Package proj contains types and functions for managing a project's Earthfile(s).
reflectutil
Package reflectutil provides reflection-based utilities, such as dynamic boolean setting.
Package reflectutil provides reflection-based utilities, such as dynamic boolean setting.
saveartifactlocally
Package saveartifactlocally handles the extraction and local saving of build artifacts from earth's buildkit containers.
Package saveartifactlocally handles the extraction and local saving of build artifacts from earth's buildkit containers.
semverutil
Package semverutil provides utilities for parsing and comparing semantic versions, particularly for Earthfile features.
Package semverutil provides utilities for parsing and comparing semantic versions, particularly for Earthfile features.
shell
Package shell was forked from buildkit/frontend/dockerfile/shell in order to allow shelling-out.
Package shell was forked from buildkit/frontend/dockerfile/shell in order to allow shelling-out.
statsstreamparser
Package statsstreamparser parses stream data containing execution statistics and metrics from buildkit containers.
Package statsstreamparser parses stream data containing execution statistics and metrics from buildkit containers.
stringutil
Package stringutil provides advanced string manipulation functions, including ANSI scrubbing, credential masking, and random string generation.
Package stringutil provides advanced string manipulation functions, including ANSI scrubbing, credential masking, and random string generation.
syncutil
Package syncutil offers synchronization primitives such as context-aware signals and wait contexts.
Package syncutil offers synchronization primitives such as context-aware signals and wait contexts.
syncutil/metacontext
Package metacontext provides a context implementation enriched with earth-specific metadata and deadlines.
Package metacontext provides a context implementation enriched with earth-specific metadata and deadlines.
syncutil/semutil
Package semutil provides weighted semaphore implementations for concurrency limits.
Package semutil provides weighted semaphore implementations for concurrency limits.
syncutil/serrgroup
Package serrgroup is an error group that does not crash if work is added after Wait has returned after an error.
Package serrgroup is an error group that does not crash if work is added after Wait has returned after an error.
syncutil/synccache
Package synccache implements a concurrent-safe cache that evaluates and stores the result of a functional constructor.
Package synccache implements a concurrent-safe cache that evaluates and stores the result of a functional constructor.
termutil
Package termutil provides utilities for terminal detection and capabilities.
Package termutil provides utilities for terminal detection and capabilities.
vertexmeta
Package vertexmeta parses and formats Buildkit vertex metadata prefixes, extracting execution contexts and secrets.
Package vertexmeta parses and formats Buildkit vertex metadata prefixes, extracting execution contexts and secrets.
waitutil
Package waitutil provides synchronization constructs for managing WAIT blocks and parallel target execution.
Package waitutil provides synchronization constructs for managing WAIT blocks and parallel target execution.
xcontext
Package xcontext provides utilities for creating detached or isolated contexts that survive parent cancellation.
Package xcontext provides utilities for creating detached or isolated contexts that survive parent cancellation.
Package variables manages the variable scopes, arguments, and environment variables during the evaluation of an Earthfile.
Package variables manages the variable scopes, arguments, and environment variables during the evaluation of an Earthfile.
reserved
Package reserved identifies and manages earth's reserved, built-in variables and constants.
Package reserved identifies and manages earth's reserved, built-in variables and constants.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL