Tools: Earthly Is Free — Makefile + Docker = Reproducible Builds - 2025 Update
The Problem With CI/CD
What Earthly Does
Earthfile
Why Earthly
Earthly vs Alternatives Your build works locally but fails in CI. Different Node versions, missing system libraries, environment differences. Earthly fixes this. Earthly = Makefile syntax + Docker isolation. Every step runs in a container. Same result everywhere. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse
VERSION 0.8 build: FROM node:20 WORKDIR /app COPY package.json package-lock.json . RUN npm ci COPY . . RUN npm run build SAVE ARTIFACT dist AS LOCAL dist test: FROM +build RUN npm test docker: FROM +build EXPOSE 3000 CMD ["node", "dist/server.js"] SAVE IMAGE my-app:latest all: BUILD +test BUILD +docker
VERSION 0.8 build: FROM node:20 WORKDIR /app COPY package.json package-lock.json . RUN npm ci COPY . . RUN npm run build SAVE ARTIFACT dist AS LOCAL dist test: FROM +build RUN npm test docker: FROM +build EXPOSE 3000 CMD ["node", "dist/server.js"] SAVE IMAGE my-app:latest all: BUILD +test BUILD +docker
VERSION 0.8 build: FROM node:20 WORKDIR /app COPY package.json package-lock.json . RUN npm ci COPY . . RUN npm run build SAVE ARTIFACT dist AS LOCAL dist test: FROM +build RUN npm test docker: FROM +build EXPOSE 3000 CMD ["node", "dist/server.js"] SAVE IMAGE my-app:latest all: BUILD +test BUILD +docker
# Install
curl -sSfL https://earthly.dev/get-earthly | sh # Run
earthly +build # Build only
earthly +test # Build + test
earthly +docker # Build + create Docker image
earthly +all # Everything
# Install
curl -sSfL https://earthly.dev/get-earthly | sh # Run
earthly +build # Build only
earthly +test # Build + test
earthly +docker # Build + create Docker image
earthly +all # Everything
# Install
curl -sSfL https://earthly.dev/get-earthly | sh # Run
earthly +build # Build only
earthly +test # Build + test
earthly +docker # Build + create Docker image
earthly +all # Everything - Same build locally and in CI
- Layer caching (fast rebuilds)
- Multi-platform builds
- Parallel execution
- Works with any CI (GitHub Actions, GitLab, Jenkins)