Earthly
Super simple build framework with consistent builds that you write once and run anywhere – on your laptop, remote, and in any CI.
Open Source on GitHub | Install Earthly w/o logging in
Increase in build speed after Earthly
It took literally just going from Dockerfile to Earthfile to bring build times from 45-ish minutes down to probably 15 or 20.
Ses Goe
Director of Internal Tools @ NOCD
By using Earthly, we enabled developers to execute complex CI pipelines on their laptops without having to commit any code!
Jesús Rodríguez Valencia
Principal Software Engineer @ Roche
By providing rapid build times, intelligent caching, and repeatability, Earthly enables a better approach to the coordination of development and deployment.
Jesse Anger
Head of IT & Security Operations @ Deep Genomics
By reducing the friction inherent in build tools, Earthly is enabling SaaS companies to move quickly and reduce the context switching overhead in their engineering organizations.
Spencer Kimball
Creator of CockroachDB and CEO @ Cockroach Labs
- 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
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 ./...
- 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
- Works with the compilers and build tools you use.
- If it runs on Linux, it runs on Earthly.
- You don’t have to rewrite your existing builds or replace your
package.json
,go.mod
, orbuild.gradle
files. - Use Earthly as a wrapper around your existing builds and get Earthly’s consistency, parallelization, and caching.
- 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
Read more about why Earthly excels in monorepos
- Automatically caches build results at each step of the build. Repeated steps are skipped each build.
- Automatically executes build targets in parallel whenever possible.
If your build has multiple steps, Earthly:
- Builds a directed acyclic graph (DAG).
- Isolates execution of each step.
- Runs independent steps in parallel.
- Caches results for future use.
- Reuse targets, artifacts, and images across multiple Earthfiles, even ones in other repositories.
- Import from any other build in a single line.
- Create vast and efficient build hierarchies that only execute steps impacted by your changes.
9800+
Stars
2300+
Commits
90+
Contributors
1100+
Community Members