Earthly CI
This feature is part of the Earthly CI paid plan.
Important
This feature is currently in Beta stage
- The feature may break or change significantly in future versions of Earthly.
- Give us feedback on
Earthly CI is a hosted CI service that allows you to run your Earthly builds in the cloud. Earthly CI gives teams repeatable pipelines that run exactly the same in CI as on your laptop; has an automatic and instantly available build cache that makes builds faster; and is super simple to use.
Earthly CI uses Earthfiles as the build configuration language.
- Ridiculously fast - Earthly CI uses the same build cache and build parallelization technology as Earthly Satellites, so builds are 2-20X faster compared to a traditional CI.
- Super simple - Earthfiles have a super simple, instantly recognizable syntax – like Dockerfile and Makefile had a baby.
- Great for Monorepos and Polyrepos - Earthly CI is great for both monorepos and polyrepos. You can organize your build logic however makes the most sense for your project. The caching ensures that only what has changed is rebuilt.
- Remote build runners - Earthly CI comes with access to Earthly Satellites. This means that you can run ad-hoc remote builds in CI from your laptop without having to commit code to Git with every attempt.
If you are upgrading from Earthly Satellites, the main benefit of using Earthly CI is that you no longer need to use a traditional CI in combination. This means less moving parts, simpler setup, slightly faster builds (no need to download Earthly during the build), and less bills to pay!
Fill out the Earthly CI signup form. You will need to wait for an Earthly team member to approve your request.
Because this feature is under heavy development right now, it is very important that you use the latest version of Earthly available.
On Mac, you can perform:
brew update
brew upgrade earthly/earthly/earthly
You can open the Earthly Web UI by running:
earthly web
This will associate your Earthly account with your GitHub login and then take you to the Earthly Web UI.
In the Earthly Web UI, under the Organizations drop-down in the top-left of the screen, select the organization that was granted access to Earthly CI. Then follow the instructions on the screen to create a new Earthly CI project, add your first repository, create your pipeline via a new or an existing Earthfile, and then run your first build.
For your very first CI pipeline you can use the following example:
VERSION 0.7
PROJECT my-org/my-project
FROM alpine:3.15
my-pipeline:
PIPELINE
TRIGGER push main
TRIGGER pr main
BUILD +my-build
my-build:
RUN echo Hello world
This example shows a simple pipeline called
my-pipeline
, which is triggered on either a push to the main
branch, or a pull request against the main
branch. The pipeline executes the target my-build
, which simply prints Hello world
.Pipelines and their definitions, including their triggers must be merged into the primary branch (which, unless overridden, is the default branch on GitHub -- usually
main
) in order for the triggers to take effect.Please note that the
PROJECT
declaration needs to match the name of your organization and the name of your Earthly project that you create in the Earthly Web UI.During your experimentation with Earthly CI, you may encounter DockerHub rate limiting errors. To avoid this, you can setup your DockerHub account by using the command
earthly registry setup
.earthly registry --org <org-name> --project <project-name> \
setup --username <registry-user-name> --password-stdin \
<host>
If the registry is DockerHub, then you can leave out the registry host argument.
You may additionally log into other registries, such as AWS ECR, or GCP Artifact Registry, by using the following:
# For AWS ECR
earthly registry --org <org-name> --project <project-name> setup --cred-helper ecr-login --aws-access-key-id <key> --aws-secret-access-key <secret> <host>
# For GCP Artifact Registry
earthly registry --org <org-name> --project <project-name> setup --cred-helper gcloud --gcp-service-account-key <key> <host>
A final optional step is to invite your team to use Earthly CI. This can be done by running:
earthly --org <org-name> org invite <email>
Or by using the Earthly Web UI.
Please note that we are aware of the following ongoing issues:
- The logs of certain builds do not show up in the UI sometimes. If you run into this problem, please let us know and provide us with the URL of the page!
- Creating an account, or logging in directly in the web UI is not yet available. Use the
earthly web
command instead. - GitHub only for now.
If you run into any issues please let us know either via Slack, GitHub issues or by emailing support.
Check out the following additinal resources:
Last modified 1mo ago