Earthfiles make builds super simple
Fast, consistent builds with an instantly familiar syntax – like Dockerfile and Makefile had a baby.
Get Started
View Docs
Simple, Fast, Consistent Builds
1,000,000
builds run on Earthly every month
Why Earthfiles?
With Earthfiles, all builds are self-contained, consistent, portable, and language agnostic.
Before:
Before:
With Earthfiles:
With Earthfiles:
Faster Builds with Earthly Satellites
Build at the speed of light with an instantly available cache
Build automation
that works with any CI
- Fast, simple remote build runners that integrate seamlessly with your existing CI
- Use Satellites with Jenkins, GitHub Actions, CircleCI, Gitlab CI/CD, AWS CodeBuild, Google Cloud Build and more
Write once, run anywhere
- Execute CI pipelines on your laptop, remotely, or in any CI
- Easily reproduce CI failures locally
- Containers make builds self-contained, isolated, consistent, and portable
- Correct execution, regardless of the environment
- New colleagues get started fast: no special configuration necessary
Rebuild only what has changed
- Automatically caches results at each step of the build
- Redundant work is eliminated in subsequent builds
- Caching makes builds fast and efficient
- No configuration required
Ridiculously Fast Builds!
- 2-20x faster builds in CI
- Rebuild only what has changed
- Automatic parallel execution
- Automatic caching with no configuration required
- Like layer caching, but for the entire pipeline, not just for images
- No upload/download of cache – instantly available
CI w/o Satellites vs CI w/ Satellites
CI w/ Satellites – Up To
20x
CI w/ Satellites – Minimum
2x
CI w/o Satellites
1x
Super simple,
not just for the build guru
- Quickly grasp Earthfiles without prior knowledge
- Syntax that is easy to write and understand by all engineers
- It's like Dockerfile and Makefile had a baby
VERSION 0.8
FROM golang:1.21-alpine3.19
RUN apk --update --no-cache add git
WORKDIR /go-example
all:
BUILD +build
BUILD +lint
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 install golang.org/x/lint/golint@latest
COPY main.go .
RUN golint -set_exit_status ./...
Great for
monorepos and polyrepos
- Works with both monorepos and polyrepos
- Builds can be split across multiple subdirectories or even repositories
- Reuse, don't repeat: reference builds, recipes, artifacts, and images from other locations
Get Started with Earthfiles now!
Simple, Fast, Consistent Builds