Earthly + GitHub Actions
GitHub Actions are better with Earthly. Get faster build speeds, improved consistency, and local testing along with an easy-to-use syntax – no YAML – and better monorepo support.
Consistent, Faster GitHub Actions
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 Satellites:
Consistent
2-20x Faster
Easy to Understand
GitHub Actions are Better with Earthly
Earthly makes GitHub Actions consistent and faster
Earthly Improves GitHub Actions
- Earthly’s consistent builds make writing, testing, and debugging easy. You can run your builds locally before committing.
- Builds are easy to write and understand. Syntax is like Dockerfile and Makefile had a baby. No YAML.
- Using Earthly Satellites with GitHub Actions makes builds 2-20x faster.
- Automatic build caching and parallel execution make builds highly efficient with little-to-no effort.
- Earthly was built with monorepos in mind, making them easier to support than with GitHub Actions alone.
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.
Ridiculously Fast Builds!
CI w/o Satellites vs CI w/ Satellites
CI w/ Satellites - Up To
20x
CI w/ Satellites - Minimum
2x
CI w/o Satellites
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
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.
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
Adopt incrementally
- Reuse, don't replace
- Most projects are up and running in less than one hour
- Earthly Satellites – our hosted remote build runners – allow you to get most of the benefits on top of your CI/CD platform of choice
- Adopt Earthly while waiting for your existing slow builds to finish