Earthly CI
Continuous integration that is fast, consistent, and super simple to use.
Simple, Fast, Consistent CI
Get Started Free
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
Nobody likes their CI/CD
Traditional CI/CD has many pain points
Nightmare to Maintain
CI/CD pipelines are a nightmare to maintain.
- Slow dev-test cycle
- No local pipeline execution
- Limited code reuse
- Clunky language (e.g. YAML, Bash, Groovy)
- Difficult to parallelize
Slow Builds
More than half of CI/CD run time is spent reexecuting things that haven't changed.
- Reinstalls dependencies every time
- Unnecessary task reexecution
- Ineffective caching
- Sandboxed CI environments sacrifice speed
Slower Means More Profit
The slower the build, the more the vendor profits.
- Profits tied to build minutes
- Slower builds benefit vendors
- Incentive against speed innovation
Poor Monorepo Support
CI/CD platforms falter with monorepo/polyrepo layouts, causing compatibility and efficiency issues.
- Limited monorepo compatibility
- Changes trigger all pipelines every time
- No robust way to trigger a subset of pipelines
- No easy way to import build results across repositories
- Requires complex DIY scripting
Introducing Earthly CI
Fast, consistent CI that is 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
Ridiculously fast builds!
Earthly CI vs Traditional CIs
Earthly CI - up to
20x
Earthly CI - minimum
2x
Traditional CI
1x
Lines represent build time in seconds.
Based on build speeds reported by our users
- 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
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.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 ./...
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
Pricing aligned with performance
- Earthly CI's pricing is aligned with performance, eliminating misaligned incentives found in traditional CI/CD platforms.
- Instead of billing by-the-minute, Earthly CI charges per active user and bills compute at cost.
- No financial incentives exist for increased build times, ensuring a focus on optimizing build speeds and customer satisfaction.
Remote build runners built-ins
- Run remote builds directly from your terminal.
- Don’t tie up your laptop running long builds.
- Available in both x86 and arm64. Builds run faster because no emulation is required.