Earthly
Super simple build framework with consistent builds that you write once and run anywhere – on your laptop, remote, and in any CI.
600,000+
builds run on Earthly every month
Why Earthly?
With Earthly, all builds are self-contained, consistent, portable, and
language agnostic.
Before:
Bash and YAML spaghetti
Clunky and Brittle
Build guru required
With Earthly:
Consistent
Robust
Easy to Understand
Introducing Earthly
Fast, consistent builds that are super simple to use
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
Super simple, not just for the build guru
VERSION 0.7
FROM golang:1.13-alpine3.11
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 get golang.org/x/lint/golint
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
Compatible with every language, framework, and build tool
- 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.
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
Automatic caching and parallel execution
- 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.
Never write the same code in multiple builds again
- 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.
Strong Community
Open source projects benefit from a collaborative community. Earthly
encourages contributions.
9000+
Stars
2000+
Commits
85+
Contributors
975+
Community Members
Want to see the source? Found an issue? Have an idea for a feature or
contribution? Head over to
our GitHub repo.
Have Questions?
Join our Slack. We are there Monday through Friday and happy to answer questions.
Testimonials
Developers and engineering teams love Earthly
Jesús Rodríguez Valencia
Principal Software Engineer @
Roche
By using Earthly, we enabled developers to execute complex CI
pipelines on their laptops without having to commit any code!
Jesse Anger
Head of IT & Security Operations @
Deep Genomics
By providing rapid build times, intelligent caching, and
repeatability, Earthly enables a better approach to the coordination
of development and deployment.
Brian Bugh
CTO @
Table Needs
Earthly has completely transformed our build process. It makes
container-based CI so much easier.
Spencer Kimball
Creator of
CockroachDB
and co-creator of
GIMP
By reducing the friction inherent in build tools, Earthly is enabling
companies to move quickly and reduce the context switching overhead in
their engineering organizations.