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

Chevron
Better Together - Earthly + Github Actions
Why Earthly?
With Earthly, all builds are self-contained, consistent, portable, and language agnostic.
Before:
Before
False checked
Bash and YAML spaghetti
False checked
Clunky and Brittle
False checked
Build guru required
With Earthly Satellites:
With Earthly
Checked bullet
Consistent
Checked bullet
2-20x Faster
Checked bullet
Easy to Understand
GitHub Actions are Better with Earthly
Earthly makes GitHub Actions consistent and faster
Earthly Improves GitHub Actions
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
Earthfile
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, or build.gradle files.
  • Use Earthly as a wrapper around your existing builds and get Earthly’s consistency, parallelization, and caching.
Compatible with every language, framework, and build tool
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

Chevron
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.
Automatic caching and parallel execution
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

Chevron
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

Get Started with Earthly now!

Simple, Fast, Consistent Builds

Get Started Free