Earthly is a build automation framework that combines the best ideas from Dockerfiles and Makefiles into a simple, instantly familiar syntax for creating repeatable, containerized builds. It solves the problem of inconsistent builds across different environments by running every build step in a container, ensuring that builds produce identical results on a developer laptop and in CI. Earthly works alongside existing language-specific build tools rather than replacing them, augmenting Make, Gradle, npm, cargo, and other build systems with containerized reproducibility.
Key features include automatic parallel execution of independent build targets, layer-based caching that skips unchanged steps, and the ability to reference targets across multiple Earthfiles in different directories or even different repositories. Earthly supports both monorepo and polyrepo workflows, with built-in support for multi-platform builds and cross-compilation. The Earthfile syntax is deliberately familiar to anyone who has written a Dockerfile, using commands like FROM, RUN, COPY, and SAVE, lowering the learning curve significantly.
Earthly is designed for development teams working on projects with complex build pipelines, monorepos with multiple services, or polyglot codebases that use multiple programming languages. It integrates with popular CI systems including GitHub Actions, GitLab CI, CircleCI, Jenkins, and AWS CodeBuild, serving as a portable build layer that decouples build logic from CI platform specifics. Earthly Lunar extends the platform with guardrails and policies for managing builds across engineering organizations.