Back to Earthly

Earthly examples

examples/README.md

0.8.163.2 KB
Original Source

Earthly examples

This folder contains a series of examples to help you familiarize yourself with Earthly.

<!-- NOTE: If you change this, please also change docs/examples/examples.md -->

Examples from the Basics tutorial

If you are new to Earthly, you may find the Basics tutorial helpful.

<!-- vale HouseStyle.Spelling = NO --> <!-- vale HouseStyle.Spelling = YES -->

Examples by language

Please note that these examples, although similar, are distinct from the ones used in the tutorial.

<!-- vale HouseStyle.Spelling = NO --> <!-- vale HouseStyle.Spelling = YES -->

Examples by use-cases

  • integration-test - shows how WITH DOCKER and docker-compose can be used to start up services and then run an integration test suite.
  • monorepo - shows how multiple sub-projects can be co-located in a single repository and how the build can be fragmented across these.
  • multirepo - shows how artifacts from multiple repositories can be referenced in a single build. See also the grpc example for a more extensive use-case.

Examples by Earthly features

  • import - shows how to use the IMPORT command to alias Earthfile references.
  • cutoff-optimization - shows that if an intermediate artifact does not change, then the rest of the build will use the cache, even if the source has changed.
  • multiplatform - shows how Earthly can execute builds and create images for multiple platforms, using QEMU emulation.
  • multiplatform-cross-compile - shows has through the use of cross-compilation, you can create images for multiple platforms, without using QEMU emulation.

Examples by use of other technologies

  • grpc - shows how to use Earthly to compile a protobuf grpc definition into protobuf code for both a Go-based server, and a python-based client, in a multirepo setup.
  • terraform - shows how Terraform could be used from Earthly.

Other

  • readme - some sample code we used in our README.
  • tests - a suite of tests Earthly uses to ensure that its features are working correctly.

Larger Examples And Community Examples