Super simple build framework with consistent builds that you write once and run anywhere – on your laptop, remote, and in any CI.
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.
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.
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.
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.7FROM golang:1.13-alpine3.11RUN apk --update --no-cache add gitWORKDIR /go-exampleall:BUILD +buildBUILD +lintbuild:COPY main.go .RUN go build -o build/go-example main.goSAVE ARTIFACT build/go-example AS LOCAL build/go-examplelint:RUN go get golang.org/x/lint/golintCOPY 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
- 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
- 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.