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
August 23, 2023
Better Together - Earthly + Github Actions
I joined Earthly at the beginning of 2023. I lead solution architecture. One of my primary roles is helping potential customers figure out how they can best leverage Earthly. That often requires building demonstrations that show how...
Read more
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.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
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
Read more about what makes Earthly fast
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
Read more about why Earthly excels in monorepos
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