From bdf5eee63dec13ec245e45f73b721507f89099fe Mon Sep 17 00:00:00 2001 From: idodod Date: Mon, 25 Mar 2024 14:29:37 -0400 Subject: [PATCH 01/16] Update docs on --load option without explicit image name (#3935) Addresses https://github.com/earthly/earthly/issues/3917 --- docs/earthfile/earthfile.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index 65fa5773..fdae7b55 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1080,7 +1080,7 @@ This does not apply to Dockerfile's [RUN --security](https://docs.docker.com/ref #### Synopsis ```Dockerfile -WITH DOCKER [--pull ] [--load =] [--compose ] +WITH DOCKER [--pull ] [--load [=]] [--compose ] [--service ] [--allow-privileged] ... @@ -1143,9 +1143,9 @@ This option may be repeated in order to provide multiple images to be pulled. It is recommended that you avoid issuing `RUN docker pull ...` and use `WITH DOCKER --pull ...` instead. The classical `docker pull` command does not take into account Earthly caching and so it would redownload the image much more frequently than necessary. {% endhint %} -##### `--load =` +##### `--load [=]` -Builds the image referenced by `` and then loads it into the temporary Docker daemon created by `WITH DOCKER`. The image can be referenced as `` within `WITH DOCKER`. +Builds the image referenced by `` and then loads it into the temporary Docker daemon created by `WITH DOCKER`. Within `WITH DOCKER`, the image can be referenced as ``, if specified, or otherwise by the name of the image specified in the referenced target's `SAVE IMAGE` command. `` may be a simple target reference (`+some-target`), or a target reference with a build arg `(+some-target --SOME_BUILD_ARG=value)`. From 7e4630d77bfb159f4f0dcc2680d7b219073cf21e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 13:44:53 -0400 Subject: [PATCH 02/16] Update earthly/dind Docker tag to ubuntu-23.04-docker-24.0.9-1 (docs-0.8) (#3968) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | earthly/dind | patch | `ubuntu-23.04-docker-24.0.5-1` -> `ubuntu-23.04-docker-24.0.9-1` | --- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/earthfile/earthfile.md | 2 +- docs/guides/docker-in-earthly.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index fdae7b55..21e27299 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1122,7 +1122,7 @@ For information on using `WITH DOCKER` with podman see the [Podman guide](../gui ##### Note For performance reasons, it is recommended to use a Docker image that already contains `dockerd`. If `dockerd` is not found, Earthly will attempt to install it. -Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.2-r0` and `earthly/dind:ubuntu-23.04-docker-24.0.5-1` to be used together with `WITH DOCKER`. +Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.2-r0` and `earthly/dind:ubuntu-23.04-docker-24.0.9-1` to be used together with `WITH DOCKER`. {% endhint %} {% hint style='info' %} diff --git a/docs/guides/docker-in-earthly.md b/docs/guides/docker-in-earthly.md index c4059442..ce73cc86 100644 --- a/docs/guides/docker-in-earthly.md +++ b/docs/guides/docker-in-earthly.md @@ -102,7 +102,7 @@ The current implementation of Docker in Earthly has a number of limitations: ... END ``` -* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.2-r0` or `earthly/dind:ubuntu-23.04-docker-24.0.5-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. +* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.2-r0` or `earthly/dind:ubuntu-23.04-docker-24.0.9-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. * If you do not use an officially supported Docker-in-Docker image, Earthly will attempt to install Docker in whatever image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. * To maximize the use of cache, all external images used should be declared via the options `--pull` or `--compose`. Even though commands such as `docker run` automatically pull an image if it is not found locally, it will do so every single time the `WITH DOCKER` clause is executed, due to Docker caching not being preserved between runs. Pre-declaring the images ensures that they are properly cached by Earthly to minimize unnecessary redownloads. * `docker build` cannot be used to build Dockerfiles. However, the Earthly command `FROM DOCKERFILE` can be used instead. See [alternative to docker build](#alternative-to-docker-build) below. From 875d5265c8fa639075adb3ef1fec14704003cd10 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:54:05 -0400 Subject: [PATCH 03/16] Update earthly/dind Docker tag to alpine-3.19-docker-25.0.3-r1 (docs-0.8) (#3972) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | earthly/dind | patch | `alpine-3.19-docker-25.0.2-r0` -> `alpine-3.19-docker-25.0.3-r1` | --- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/basics/part-6-using-docker-with-earthly.md | 16 ++++++++-------- docs/docker-images/dind.md | 2 +- docs/earthfile/earthfile.md | 4 ++-- docs/guides/best-practices.md | 6 +++--- docs/guides/docker-in-earthly.md | 12 ++++++------ docs/guides/integration.md | 2 +- docs/guides/registries/aws-ecr.md | 8 ++++---- 7 files changed, 25 insertions(+), 25 deletions(-) diff --git a/docs/basics/part-6-using-docker-with-earthly.md b/docs/basics/part-6-using-docker-with-earthly.md index 63ea6a63..ee67da7a 100644 --- a/docs/basics/part-6-using-docker-with-earthly.md +++ b/docs/basics/part-6-using-docker-with-earthly.md @@ -10,14 +10,14 @@ Examples in [Python](#more-examples), [JavaScript](#more-examples) and [Java](#m You may find that you need to run Docker commands inside a target. For those cases Earthly offers `WITH DOCKER`. `WITH DOCKER` will initialize a Docker daemon that can be used in the context of a `RUN` command. -Whenever you need to use `WITH DOCKER` we recommend (though it is not required) that you use Earthly's own Docker in Docker (dind) image: `earthly/dind:alpine-3.19-docker-25.0.2-r0`. +Whenever you need to use `WITH DOCKER` we recommend (though it is not required) that you use Earthly's own Docker in Docker (dind) image: `earthly/dind:alpine-3.19-docker-25.0.3-r1`. -Notice `WITH DOCKER` creates a block of code that has an `END` keyword. Everything that happens within this block is going to take place within our `earthly/dind:alpine-3.19-docker-25.0.2-r0` container. +Notice `WITH DOCKER` creates a block of code that has an `END` keyword. Everything that happens within this block is going to take place within our `earthly/dind:alpine-3.19-docker-25.0.3-r1` container. ### Pulling an Image ```Dockerfile hello: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WITH DOCKER --pull hello-world RUN docker run hello-world END @@ -35,7 +35,7 @@ my-hello-world: SAVE IMAGE my-hello:latest hello: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WITH DOCKER --load hello:latest=+my-hello-world RUN docker run hello:latest END @@ -137,7 +137,7 @@ test-setup: SAVE IMAGE test:latest integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml --load tests:latest=+test-setup RUN docker run --network=default_go/part6_default tests:latest @@ -346,7 +346,7 @@ api-docker: # Run your app and api side by side app-with-api: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 RUN apk add curl WITH DOCKER \ --load app:latest=+app-docker \ @@ -401,7 +401,7 @@ docker: SAVE IMAGE java-example:$tag with-postgresql: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY ./docker-compose.yml . RUN apk update RUN apk add postgresql-client @@ -559,7 +559,7 @@ build: COPY . . run-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY ./docker-compose.yml . COPY ./tests ./tests RUN apk update diff --git a/docs/docker-images/dind.md b/docs/docker-images/dind.md index fbdbe4f2..af649862 100644 --- a/docs/docker-images/dind.md +++ b/docs/docker-images/dind.md @@ -35,7 +35,7 @@ dind: ARG SMALLEST_VERSION="$(echo -e "$EARTHLY_VERSION\nv0.7.14" | sort -V | head -n 1)" IF [ "$SMALLEST_VERSION" = "v0.7.14" ] # earthly is at v0.7.14 or newer, and must use the more recent dind:alpine-3.19-docker-25.0.2-r0 image - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 END test: diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index 21e27299..a228fd33 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1100,7 +1100,7 @@ The `WITH DOCKER` clause only supports the command [`RUN`](#run). Other commands A typical example of a `WITH DOCKER` clause might be: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WORKDIR /test COPY docker-compose.yml ./ WITH DOCKER \ @@ -1122,7 +1122,7 @@ For information on using `WITH DOCKER` with podman see the [Podman guide](../gui ##### Note For performance reasons, it is recommended to use a Docker image that already contains `dockerd`. If `dockerd` is not found, Earthly will attempt to install it. -Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.2-r0` and `earthly/dind:ubuntu-23.04-docker-24.0.9-1` to be used together with `WITH DOCKER`. +Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.3-r1` and `earthly/dind:ubuntu-23.04-docker-24.0.9-1` to be used together with `WITH DOCKER`. {% endhint %} {% hint style='info' %} diff --git a/docs/guides/best-practices.md b/docs/guides/best-practices.md index 31736a3b..b79db870 100644 --- a/docs/guides/best-practices.md +++ b/docs/guides/best-practices.md @@ -304,7 +304,7 @@ In certain cases, it may be desirable to execute certain targets on the host mac Suppose we wanted the following target to be executed on against the host's Docker daemon: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WORKDIR /app COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml \ @@ -335,7 +335,7 @@ ARG run_locally=false IF [ "$run_locally" = "true" ] LOCALLY ELSE - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WORKDIR /app COPY docker-compose.yml ./ END @@ -1062,7 +1062,7 @@ The best supported option, however, is to use the `earthly/dind` image, if possi ```Dockerfile # Best - if possible integration-test: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml RUN ... diff --git a/docs/guides/docker-in-earthly.md b/docs/guides/docker-in-earthly.md index ce73cc86..b6fb23bd 100644 --- a/docs/guides/docker-in-earthly.md +++ b/docs/guides/docker-in-earthly.md @@ -11,7 +11,7 @@ Here is a quick example of running a `hello-world` docker container via `docker ```Dockerfile hello: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WITH DOCKER --pull hello-world RUN docker run hello-world END @@ -19,7 +19,7 @@ hello: Let's break it down. -`FROM earthly/dind:alpine-3.19-docker-25.0.2-r0` inherits from an Earthly-supported docker-in-docker (dind) image. This is recommended, because `WITH DOCKER` requires all the Docker binaries (not just the client) to be present in the build environment. +`FROM earthly/dind:alpine-3.19-docker-25.0.3-r1` inherits from an Earthly-supported docker-in-docker (dind) image. This is recommended, because `WITH DOCKER` requires all the Docker binaries (not just the client) to be present in the build environment. `WITH DOCKER ... END` starts a Docker daemon for the purpose of running Docker commands against it. At the end of the execution, this also terminates the daemon and permanently deletes all of its data (e.g. daemon cached images). @@ -38,7 +38,7 @@ build: SAVE IMAGE my-image:latest smoke-test: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WITH DOCKER --load test:latest=+build RUN docker run test:latest FROM earthly/dind:alpine @@ -54,7 +54,7 @@ smoke-test: It is possible to run `docker-compose` via `WITH DOCKER`, either explicitly, simply by running the `docker-compose` tool, or implicitly, via the `--compose` flag. The `--compose` flag allows you to specify a Docker compose stack that needs to be brought up before the execution of the `RUN` command. For example: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY docker-compose.yml ./ WITH DOCKER \ --compose docker-compose.yml \ @@ -68,7 +68,7 @@ Using the `--compose` flag has the added benefit that any images needed by the c ## Performance -It's recommended to use the `earthly/dind:alpine-3.19-docker-25.0.2-r0` image for running docker-in-docker. See the best-practices' section on using [with docker](../guides/best-practices.md#use-earthly-dind) for more details. +It's recommended to use the `earthly/dind:alpine-3.19-docker-25.0.3-r1` image for running docker-in-docker. See the best-practices' section on using [with docker](../guides/best-practices.md#use-earthly-dind) for more details. In cases when using `earthly/dind` is not possible, Earthly will attempt to install Docker in the image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. @@ -102,7 +102,7 @@ The current implementation of Docker in Earthly has a number of limitations: ... END ``` -* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.2-r0` or `earthly/dind:ubuntu-23.04-docker-24.0.9-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. +* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.3-r1` or `earthly/dind:ubuntu-23.04-docker-24.0.9-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. * If you do not use an officially supported Docker-in-Docker image, Earthly will attempt to install Docker in whatever image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. * To maximize the use of cache, all external images used should be declared via the options `--pull` or `--compose`. Even though commands such as `docker run` automatically pull an image if it is not found locally, it will do so every single time the `WITH DOCKER` clause is executed, due to Docker caching not being preserved between runs. Pre-declaring the images ensures that they are properly cached by Earthly to minimize unnecessary redownloads. * `docker build` cannot be used to build Dockerfiles. However, the Earthly command `FROM DOCKERFILE` can be used instead. See [alternative to docker build](#alternative-to-docker-build) below. diff --git a/docs/guides/integration.md b/docs/guides/integration.md index e20fe8a9..a84ef50b 100644 --- a/docs/guides/integration.md +++ b/docs/guides/integration.md @@ -133,7 +133,7 @@ We start with a simple Earthfile that can build and create a docker image for ou We start from an appropriate docker image and set up a working directory. ``` Dockerfile VERSION 0.8 -FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WORKDIR /scala-example RUN apk add openjdk11 bash wget postgresql-client ``` diff --git a/docs/guides/registries/aws-ecr.md b/docs/guides/registries/aws-ecr.md index 18331603..16b9d496 100644 --- a/docs/guides/registries/aws-ecr.md +++ b/docs/guides/registries/aws-ecr.md @@ -96,7 +96,7 @@ Loaded image: .dkr.ecr..amazonaws.com/hello-earthly:with Using this credential helper; you can also pull images without any special handling in an Earthfile: ``` -FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 run: WITH DOCKER --pull .dkr.ecr..amazonaws.com/hello-earthly:with-love @@ -109,12 +109,12 @@ And here is how you would run it: ``` ❯ earthly -P +run buildkitd | Found buildkit daemon as docker container (earthly-buildkitd) - earthly/dind:alpine-3.19-docker-25.0.2-r0 | --> Load metadata linux/amd64 + earthly/dind:alpine-3.19-docker-25.0.3-r1 | --> Load metadata linux/amd64 4/hello-earthly:with-love | --> Load metadata linux/amd64 4/hello-earthly:with-love | --> DOCKER PULL .dkr.ecr..amazonaws.com/hello-earthly:with-love 4/hello-earthly:with-love | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve .dkr.ecr..amazonaws.com/hello-earthly:with-love@sha256:9ab4df74dafa2a71d71e39e1af133d110186698c78554ab000159cfa92081de4 ... 100% - +base | --> FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 - +base | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve docker.io/earthly/dind:alpine-3.19-docker-25.0.2-r0@sha256:2cef4089960efe028de40721749e3ec6eba9f471562bf10681de729287bd78fb ... 100% + +base | --> FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + +base | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve docker.io/earthly/dind:alpine-3.19-docker-25.0.3-r1@sha256:2cef4089960efe028de40721749e3ec6eba9f471562bf10681de729287bd78fb ... 100% +run | *cached* --> WITH DOCKER (install deps) +run | *cached* --> WITH DOCKER RUN docker run .dkr.ecr..amazonaws.com/hello-earthly:with-love output | --> exporting outputs From 02bc73553b82865c9e9fd19196ccc86336118c80 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 11:50:17 -0700 Subject: [PATCH 04/16] Update dependency earthly/earthly to v0.8.7 (docs-0.8) (#3982) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [earthly/earthly](https://togithub.com/earthly/earthly) | patch | `v0.8.6` -> `v0.8.7` | --- ### Release Notes
earthly/earthly (earthly/earthly) ### [`v0.8.7`](https://togithub.com/earthly/earthly/blob/HEAD/CHANGELOG.md#v087---2024-04-03) [Compare Source](https://togithub.com/earthly/earthly/compare/v0.8.6...v0.8.7) ##### Added - Warning log when resolving remote references using a git image that doesn't match Buildkit's architecture. - New experimental `--exec-stats-summary=` cli flag, which will display a summary of memory and cpu stats when earthly exits. - A notice is now displayed when unnecessary feature flags are set (but already enabled by default by the VERSION number). Thanks to [@​danqixu](https://togithub.com/danqixu) for the contribution! [#​3641](https://togithub.com/earthly/earthly/issues/3641) - A warning is displayed if the local buildkit image architecture does not match the host architecture. [#​3937](https://togithub.com/earthly/earthly/issues/3937) ##### Fixed - Warning logs during HTTP retries are only displayed in `--debug` mode. - The HOST command will now expand variables. Thanks to [@​pbecotte](https://togithub.com/pbecotte) for the contribution! [#​1743](https://togithub.com/earthly/earthly/issues/1743) - runc has been updated to 1.1.12 in the buildkit fork ##### Additional Info - This release includes changes to buildkit
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../part-8a-using-earthly-in-your-current-ci.md | 4 ++-- docs/ci-integration/build-an-earthly-ci-image.md | 4 ++-- .../guides/bitbucket-pipelines-integration.md | 2 +- docs/ci-integration/guides/circle-integration.md | 2 +- docs/ci-integration/guides/codebuild-integration.md | 2 +- docs/ci-integration/guides/gh-actions-integration.md | 2 +- docs/ci-integration/guides/gitlab-integration.md | 2 +- docs/ci-integration/guides/google-cloud-build.md | 4 ++-- docs/ci-integration/guides/woodpecker-integration.md | 2 +- docs/ci-integration/overview.md | 2 +- docs/ci-integration/use-earthly-ci-image.md | 6 +++--- docs/cloud/satellites/self-hosted.md | 8 ++++---- docs/docker-images/all-in-one.md | 12 ++++++------ docs/docker-images/buildkit-standalone.md | 2 +- docs/guides/importing.md | 10 +++++----- docs/guides/target-ref.md | 10 +++++----- release/README.md | 2 +- 17 files changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/basics/part-8a-using-earthly-in-your-current-ci.md b/docs/basics/part-8a-using-earthly-in-your-current-ci.md index fce3ee67..c1783548 100644 --- a/docs/basics/part-8a-using-earthly-in-your-current-ci.md +++ b/docs/basics/part-8a-using-earthly-in-your-current-ci.md @@ -41,7 +41,7 @@ jobs: steps: - uses: earthly/actions/setup-earthly@v1 with: - version: v0.8.6 + version: v0.8.7 - uses: actions/checkout@v2 - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" @@ -51,7 +51,7 @@ jobs: Here is an explanation of the steps above: -* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.6/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` +* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` * The command `docker login` performs a login to the DockerHub registry. This is required, to prevent rate-limiting issues when using popular base images. * The command `earthly --org ... --sat ... --ci --push +build` executes the build. The `--ci` flag is used here, in order to force the use of `--strict` mode. In `--strict` mode, Earthly prevents the use of features that make the build less repeatable and also disables local outputs -- because artifacts and images resulting from the build are not needed within the CI environment. Any outputs should be pushed via `RUN --push` or `SAVE IMAGE --push` commands. The flags `--org` and `--sat` allow you to select the organization and satellite to use for the build. If no satellite is specified, the build will be executed in the CI environment itself, with limited caching. diff --git a/docs/ci-integration/build-an-earthly-ci-image.md b/docs/ci-integration/build-an-earthly-ci-image.md index 984bd7a2..3ebb72c8 100644 --- a/docs/ci-integration/build-an-earthly-ci-image.md +++ b/docs/ci-integration/build-an-earthly-ci-image.md @@ -18,7 +18,7 @@ This guide will cover both approaches to constructing your image. This is the recommended approach when adopting Earthly into your containerized CI. Start by basing your custom image on ours: ```docker -FROM earthly/earthly:v0.8.6 +FROM earthly/earthly:v0.8.7 RUN ... # Add your agent, certificates, tools... ``` @@ -50,7 +50,7 @@ In this setup, Earthly will be allowed to manage an instance of its `earthly/bui To enable this, simply follow the installation instructions within your Dockerfile/Earthfile as you would on any other host. An example of installing this can be found below. ```docker -RUN wget https://github.com/earthly/earthly/releases/download/v0.8.6/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +RUN wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/guides/bitbucket-pipelines-integration.md b/docs/ci-integration/guides/bitbucket-pipelines-integration.md index fa926c42..2a17034b 100644 --- a/docs/ci-integration/guides/bitbucket-pipelines-integration.md +++ b/docs/ci-integration/guides/bitbucket-pipelines-integration.md @@ -7,7 +7,7 @@ You can however, run Earthly builds on Bitbucket pipelines via [remote runners]( ```yml # ./bitbucket-pipelines.yml -image: earthly/earthly:v0.8.6 +image: earthly/earthly:v0.8.7 pipelines: default: diff --git a/docs/ci-integration/guides/circle-integration.md b/docs/ci-integration/guides/circle-integration.md index c892a559..1d25eaf8 100644 --- a/docs/ci-integration/guides/circle-integration.md +++ b/docs/ci-integration/guides/circle-integration.md @@ -14,7 +14,7 @@ jobs: steps: - checkout - run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.6/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/codebuild-integration.md b/docs/ci-integration/guides/codebuild-integration.md index 3166d16e..d908b03f 100644 --- a/docs/ci-integration/guides/codebuild-integration.md +++ b/docs/ci-integration/guides/codebuild-integration.md @@ -18,7 +18,7 @@ version: 0.2 phases: install: commands: - - wget https://github.com/earthly/earthly/releases/download/v0.8.6/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly + - wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly pre_build: commands: - echo Logging into Docker diff --git a/docs/ci-integration/guides/gh-actions-integration.md b/docs/ci-integration/guides/gh-actions-integration.md index 5d67fa00..5b83622b 100644 --- a/docs/ci-integration/guides/gh-actions-integration.md +++ b/docs/ci-integration/guides/gh-actions-integration.md @@ -60,7 +60,7 @@ jobs: - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - name: Download latest earthly - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.6/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - name: Run build run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/gitlab-integration.md b/docs/ci-integration/guides/gitlab-integration.md index 7e902210..931a9824 100644 --- a/docs/ci-integration/guides/gitlab-integration.md +++ b/docs/ci-integration/guides/gitlab-integration.md @@ -15,7 +15,7 @@ variables: FORCE_COLOR: 1 EARTHLY_EXEC_CMD: "/bin/sh" -image: earthly/earthly:v0.8.6 +image: earthly/earthly:v0.8.7 before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY diff --git a/docs/ci-integration/guides/google-cloud-build.md b/docs/ci-integration/guides/google-cloud-build.md index f51e049e..c6857c6b 100644 --- a/docs/ci-integration/guides/google-cloud-build.md +++ b/docs/ci-integration/guides/google-cloud-build.md @@ -106,7 +106,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'build' - name: 'earthly/earthly:v0.8.6' + name: 'earthly/earthly:v0.8.7' args: - --ci - --push @@ -117,7 +117,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'gcp-test' - name: 'earthly/earthly:v0.8.6' + name: 'earthly/earthly:v0.8.7' args: - +gcp-cloudbuild secretEnv: diff --git a/docs/ci-integration/guides/woodpecker-integration.md b/docs/ci-integration/guides/woodpecker-integration.md index cca51be4..22b01c32 100644 --- a/docs/ci-integration/guides/woodpecker-integration.md +++ b/docs/ci-integration/guides/woodpecker-integration.md @@ -14,7 +14,7 @@ The project needs to be [trusted](https://woodpecker-ci.org/docs/usage/project-s #.woodpecker.yml pipeline: earthly: - image: earthly/earthly:v0.8.6 + image: earthly/earthly:v0.8.7 volumes: - /var/run/docker.sock:/var/run/docker.sock environment: diff --git a/docs/ci-integration/overview.md b/docs/ci-integration/overview.md index f2a637fe..d3499f59 100644 --- a/docs/ci-integration/overview.md +++ b/docs/ci-integration/overview.md @@ -27,7 +27,7 @@ Once you have ensured that the dependencies are available, you'll need to instal This is the simplest method for adding `earthly` to your CI. It will work best on dedicated computers, or in scripted/auto-provisioned build environments. You can pin it to a specific version like so: ```shell -wget https://github.com/earthly/earthly/releases/download/v0.8.6/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/use-earthly-ci-image.md b/docs/ci-integration/use-earthly-ci-image.md index 9dfb17c4..f80ff5e5 100644 --- a/docs/ci-integration/use-earthly-ci-image.md +++ b/docs/ci-integration/use-earthly-ci-image.md @@ -36,19 +36,19 @@ For more details on using remote execution, [see our guide on remote Buildkit](. The image expects the source code of the application you are building in the current working directory (by default `/workspace`). You will need to copy or mount the necessary files to that directory prior to invoking the entrypoint. ```bash -docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.6 +my-target +docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.7 +my-target ``` Or, if you would like to use an alternative directory: ```bash -docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.6 +my-target +docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.7 +my-target ``` Alternatively, you may rely on Earthly to perform a git clone, by using the remote target reference format. For example: ```bash -docker run --privileged --rm earthly/earthly:v0.8.6 github.com/foo/bar:my-branch+target +docker run --privileged --rm earthly/earthly:v0.8.7 github.com/foo/bar:my-branch+target ``` #### `NO_BUILDKIT` Environment Variable diff --git a/docs/cloud/satellites/self-hosted.md b/docs/cloud/satellites/self-hosted.md index 6d4d41de..d881a7e2 100644 --- a/docs/cloud/satellites/self-hosted.md +++ b/docs/cloud/satellites/self-hosted.md @@ -26,7 +26,7 @@ docker run --privileged \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ - earthly/satellite:v0.8.6 + earthly/satellite:v0.8.7 ``` The following environment variables are required: @@ -107,7 +107,7 @@ runcmd: -e EARTHLY_TOKEN=GuFna*****nve7e \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ - earthly/satellite:v0.8.6 + earthly/satellite:v0.8.7 ``` Note that the `SATELLITE_HOST` variable is unset in this example so that the host is auto-discovered by the satellite when it starts. This should result in the instance’s private DNS being used as the host. @@ -134,7 +134,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: earthly/satellite:v0.8.6 + image: earthly/satellite:v0.8.7 securityContext: privileged: true ports: @@ -174,7 +174,7 @@ Here’s an example of how to attach the volume using the Docker command line: ``` docker run -v earthly-cache:/tmp/earthly:rw \ ... - earthly/satellite:v0.8.6 + earthly/satellite:v0.8.7 ``` ## Additional Environment Variables diff --git a/docs/docker-images/all-in-one.md b/docs/docker-images/all-in-one.md index d5a21ecd..68b719cd 100644 --- a/docs/docker-images/all-in-one.md +++ b/docs/docker-images/all-in-one.md @@ -2,7 +2,7 @@ This image contains `earthly`, `buildkit`, and some extra configuration to enabl ## Tags -Currently, the `latest` tag is `v0.8.6`. +Currently, the `latest` tag is `v0.8.7`. For other available tags, please check out https://hub.docker.com/r/earthly/earthly/tags ## Quickstart @@ -14,7 +14,7 @@ Want to get started? Here are a couple sample `docker run` commands that cover t This example shows how to use the Earthly container in conjunction with a Docker socket that Earthly can use to start up the Buildkit daemon. ```bash -docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.6 +for-linux +docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.7 +for-linux ``` Here's a quick breakdown: @@ -30,7 +30,7 @@ Here's a quick breakdown: This example shows how the Earthly image can start a Buildkit daemon within the same container. A Docker socket is not needed in this case, however the container will need to be run with the `--privileged` flag. ```bash -docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.6 +for-linux +docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.7 +for-linux ``` Here's a quick breakdown: @@ -46,7 +46,7 @@ Here's a quick breakdown: This example utilizes an [Earthly Satellite](https://docs.earthly.dev/earthly-cloud/satellites) to perform builds. The code to be built is downloaded directly from GitHub. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.6 --ci --org --sat github.com/earthly/earthly+for-linux +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.7 --ci --org --sat github.com/earthly/earthly+for-linux ``` Here's what this does: @@ -61,11 +61,11 @@ Here's what this does: This example shows how to use the Earthly container to run non-build commands. This is useful for running commands like `earthly account`, or `earthly secret`. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.6 account list-tokens +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.7 account list-tokens ``` ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.6 secret get foo +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.7 secret get foo ``` ## Using This Image diff --git a/docs/docker-images/buildkit-standalone.md b/docs/docker-images/buildkit-standalone.md index 1c9d70fb..1cee728a 100644 --- a/docs/docker-images/buildkit-standalone.md +++ b/docs/docker-images/buildkit-standalone.md @@ -4,7 +4,7 @@ This image contains `buildkit` with some Earthly-specific setup. This is what Ea ## Tags -Currently, the `latest` tag is `v0.8.6`. +Currently, the `latest` tag is `v0.8.7`. For other available tags, please check out https://hub.docker.com/r/earthly/buildkitd/tags ## Quickstart diff --git a/docs/guides/importing.md b/docs/guides/importing.md index baac78fc..6540492c 100644 --- a/docs/guides/importing.md +++ b/docs/guides/importing.md @@ -96,7 +96,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.6+earthly` +* `github.com/earthly/earthly:v0.8.7+earthly` * `my-import+build` ## Artifact reference @@ -110,7 +110,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.6+earthly/earthly` +* `github.com/earthly/earthly:v0.8.7+earthly/earthly` * `my-import+build/my-artifact` ## Image reference @@ -131,7 +131,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.6+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.7+DOWNLOAD_DIND` * `my-import+COMPILE` For more information on functions, see the [Functions Guide](./functions.md). @@ -170,7 +170,7 @@ Another form of a Earthfile reference is the remote form. In this form, the reci |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.6` | `github.com/earthly/earthly:v0.8.6+build` | `github.com/earthly/earthly:v0.8.6+build/out.bin` | `github.com/earthly/earthly:v0.8.6+COMPILE` | +| `github.com/earthly/earthly:v0.8.7` | `github.com/earthly/earthly:v0.8.7+build` | `github.com/earthly/earthly:v0.8.7+build/out.bin` | `github.com/earthly/earthly:v0.8.7+COMPILE` | ### Import reference @@ -180,7 +180,7 @@ Finally, the last form of Earthfile referencing is an import reference. Import r |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.6` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.7` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/docs/guides/target-ref.md b/docs/guides/target-ref.md index 172acc06..f5f25eb7 100644 --- a/docs/guides/target-ref.md +++ b/docs/guides/target-ref.md @@ -20,7 +20,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.6+earthly` +* `github.com/earthly/earthly:v0.8.7+earthly` ## Artifact reference @@ -33,7 +33,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.6+earthly/earthly` +* `github.com/earthly/earthly:v0.8.7+earthly/earthly` ## Image reference @@ -53,7 +53,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.6+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.7+DOWNLOAD_DIND` For more information on functions, see the [functions guide](./functions.md). @@ -93,7 +93,7 @@ Another form of a project reference is the remote form. In this form, the recipe |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.6` | `github.com/earthly/earthly:v0.8.6+build` | `github.com/earthly/earthly:v0.8.6+build/out.bin` | `github.com/earthly/earthly:v0.8.6+COMPILE` | +| `github.com/earthly/earthly:v0.8.7` | `github.com/earthly/earthly:v0.8.7+build` | `github.com/earthly/earthly:v0.8.7+build/out.bin` | `github.com/earthly/earthly:v0.8.7+COMPILE` | ### Import reference @@ -103,7 +103,7 @@ Finally, the last form of project referencing is an import reference. Import ref |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.6` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.7` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/release/README.md b/release/README.md index ed49fc7f..384b107b 100644 --- a/release/README.md +++ b/release/README.md @@ -18,7 +18,7 @@ git checkout main && git pull ``` * Update the CHANGELOG.md with the corresponding release notes and open a PR - * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.6...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. + * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.7...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. * Make sure that main build is green for all platforms (check build status for the latest commit on GitHub). * Make sure the following build status are green: | Platform | Status | From ee4f8271986b175c608337cf79ca9ed1d1525ff5 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 3 Apr 2024 15:08:24 -0400 Subject: [PATCH 05/16] Update earthly/dind Docker tag to alpine-3.19-docker-25.0.3-r1 (docs-0.8) (#3984) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | earthly/dind | | patch | `alpine-3.19-docker-25.0.2-r0` -> `alpine-3.19-docker-25.0.3-r1` | | earthly/dind | stage | patch | `alpine-3.19-docker-25.0.2-r0` -> `alpine-3.19-docker-25.0.3-r1` | | earthly/dind | final | patch | `alpine-3.19-docker-25.0.2-r0` -> `alpine-3.19-docker-25.0.3-r1` | --- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- examples/grpc/Earthfile | 2 +- examples/integration-test/Earthfile | 2 +- examples/react/Earthfile | 2 +- examples/tutorial/go/part6/Earthfile | 2 +- examples/tutorial/java/part6/Earthfile | 2 +- examples/tutorial/js/part6/Earthfile | 2 +- examples/tutorial/python/part6/Earthfile | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/examples/grpc/Earthfile b/examples/grpc/Earthfile index 542038f7..39faa6d6 100644 --- a/examples/grpc/Earthfile +++ b/examples/grpc/Earthfile @@ -35,7 +35,7 @@ WORKDIR /example-grpc # the returned value is "salmon". test: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WITH DOCKER \ --load kvserver:latest=github.com/earthly/earthly-example-proto-server:main+kvserver-docker \ --load kv-py-client:latest=github.com/earthly/earthly-example-proto-python-client:main+kvclient-docker \ diff --git a/examples/integration-test/Earthfile b/examples/integration-test/Earthfile index 2c04b4e2..37001977 100644 --- a/examples/integration-test/Earthfile +++ b/examples/integration-test/Earthfile @@ -1,5 +1,5 @@ VERSION 0.8 -FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WORKDIR /scala-example RUN apk add openjdk11 bash wget postgresql-client diff --git a/examples/react/Earthfile b/examples/react/Earthfile index 10a6e4cb..6d305803 100644 --- a/examples/react/Earthfile +++ b/examples/react/Earthfile @@ -16,7 +16,7 @@ docker: SAVE IMAGE --push earthly/examples:react run: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 WITH DOCKER --load app:test=+docker RUN docker run --rm -p 3000:80 app:test END diff --git a/examples/tutorial/go/part6/Earthfile b/examples/tutorial/go/part6/Earthfile index 7ac90c24..f82e8614 100644 --- a/examples/tutorial/go/part6/Earthfile +++ b/examples/tutorial/go/part6/Earthfile @@ -29,7 +29,7 @@ test-setup: SAVE IMAGE test:latest integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml --load tests:latest=+test-setup RUN docker run --network=default_go/part6_default tests:latest | grep "ok" diff --git a/examples/tutorial/java/part6/Earthfile b/examples/tutorial/java/part6/Earthfile index 03b36af8..9e2cf377 100644 --- a/examples/tutorial/java/part6/Earthfile +++ b/examples/tutorial/java/part6/Earthfile @@ -23,7 +23,7 @@ docker: SAVE IMAGE java-example:$tag integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY ./docker-compose.yml . RUN apk update RUN apk add postgresql-client diff --git a/examples/tutorial/js/part6/Earthfile b/examples/tutorial/js/part6/Earthfile index 01c08ec1..19be5d85 100644 --- a/examples/tutorial/js/part6/Earthfile +++ b/examples/tutorial/js/part6/Earthfile @@ -44,7 +44,7 @@ api-docker: SAVE IMAGE js-api:$tag integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 RUN apk add curl WITH DOCKER \ --load app:latest=+app-docker \ diff --git a/examples/tutorial/python/part6/Earthfile b/examples/tutorial/python/part6/Earthfile index bfe37c74..e9018f3c 100644 --- a/examples/tutorial/python/part6/Earthfile +++ b/examples/tutorial/python/part6/Earthfile @@ -12,7 +12,7 @@ build: SAVE ARTIFACT src /src integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.2-r0 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 COPY ./docker-compose.yml . COPY ./tests ./tests RUN apk update From 0ad05a227d9db6b5e05922e5ce26bc10c3c1a86e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 7 Apr 2024 08:01:42 -0400 Subject: [PATCH 06/16] Update earthly/dind Docker tag to alpine-3.19-docker-25.0.3-r2 (docs-0.8) (#3994) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | earthly/dind | | patch | `alpine-3.19-docker-25.0.3-r1` -> `alpine-3.19-docker-25.0.3-r2` | | earthly/dind | stage | patch | `alpine-3.19-docker-25.0.3-r1` -> `alpine-3.19-docker-25.0.3-r2` | | earthly/dind | final | patch | `alpine-3.19-docker-25.0.3-r1` -> `alpine-3.19-docker-25.0.3-r2` | --- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/basics/part-6-using-docker-with-earthly.md | 16 ++++++++-------- docs/earthfile/earthfile.md | 4 ++-- docs/guides/best-practices.md | 6 +++--- docs/guides/docker-in-earthly.md | 12 ++++++------ docs/guides/integration.md | 2 +- docs/guides/registries/aws-ecr.md | 8 ++++---- examples/grpc/Earthfile | 2 +- examples/integration-test/Earthfile | 2 +- examples/react/Earthfile | 2 +- examples/tutorial/go/part6/Earthfile | 2 +- examples/tutorial/java/part6/Earthfile | 2 +- examples/tutorial/js/part6/Earthfile | 2 +- examples/tutorial/python/part6/Earthfile | 2 +- 13 files changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/basics/part-6-using-docker-with-earthly.md b/docs/basics/part-6-using-docker-with-earthly.md index ee67da7a..82f2ae8e 100644 --- a/docs/basics/part-6-using-docker-with-earthly.md +++ b/docs/basics/part-6-using-docker-with-earthly.md @@ -10,14 +10,14 @@ Examples in [Python](#more-examples), [JavaScript](#more-examples) and [Java](#m You may find that you need to run Docker commands inside a target. For those cases Earthly offers `WITH DOCKER`. `WITH DOCKER` will initialize a Docker daemon that can be used in the context of a `RUN` command. -Whenever you need to use `WITH DOCKER` we recommend (though it is not required) that you use Earthly's own Docker in Docker (dind) image: `earthly/dind:alpine-3.19-docker-25.0.3-r1`. +Whenever you need to use `WITH DOCKER` we recommend (though it is not required) that you use Earthly's own Docker in Docker (dind) image: `earthly/dind:alpine-3.19-docker-25.0.3-r2`. -Notice `WITH DOCKER` creates a block of code that has an `END` keyword. Everything that happens within this block is going to take place within our `earthly/dind:alpine-3.19-docker-25.0.3-r1` container. +Notice `WITH DOCKER` creates a block of code that has an `END` keyword. Everything that happens within this block is going to take place within our `earthly/dind:alpine-3.19-docker-25.0.3-r2` container. ### Pulling an Image ```Dockerfile hello: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WITH DOCKER --pull hello-world RUN docker run hello-world END @@ -35,7 +35,7 @@ my-hello-world: SAVE IMAGE my-hello:latest hello: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WITH DOCKER --load hello:latest=+my-hello-world RUN docker run hello:latest END @@ -137,7 +137,7 @@ test-setup: SAVE IMAGE test:latest integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml --load tests:latest=+test-setup RUN docker run --network=default_go/part6_default tests:latest @@ -346,7 +346,7 @@ api-docker: # Run your app and api side by side app-with-api: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 RUN apk add curl WITH DOCKER \ --load app:latest=+app-docker \ @@ -401,7 +401,7 @@ docker: SAVE IMAGE java-example:$tag with-postgresql: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY ./docker-compose.yml . RUN apk update RUN apk add postgresql-client @@ -559,7 +559,7 @@ build: COPY . . run-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY ./docker-compose.yml . COPY ./tests ./tests RUN apk update diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index a228fd33..a63ccbe6 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1100,7 +1100,7 @@ The `WITH DOCKER` clause only supports the command [`RUN`](#run). Other commands A typical example of a `WITH DOCKER` clause might be: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WORKDIR /test COPY docker-compose.yml ./ WITH DOCKER \ @@ -1122,7 +1122,7 @@ For information on using `WITH DOCKER` with podman see the [Podman guide](../gui ##### Note For performance reasons, it is recommended to use a Docker image that already contains `dockerd`. If `dockerd` is not found, Earthly will attempt to install it. -Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.3-r1` and `earthly/dind:ubuntu-23.04-docker-24.0.9-1` to be used together with `WITH DOCKER`. +Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` and `earthly/dind:ubuntu-23.04-docker-24.0.9-1` to be used together with `WITH DOCKER`. {% endhint %} {% hint style='info' %} diff --git a/docs/guides/best-practices.md b/docs/guides/best-practices.md index b79db870..753d8df8 100644 --- a/docs/guides/best-practices.md +++ b/docs/guides/best-practices.md @@ -304,7 +304,7 @@ In certain cases, it may be desirable to execute certain targets on the host mac Suppose we wanted the following target to be executed on against the host's Docker daemon: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WORKDIR /app COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml \ @@ -335,7 +335,7 @@ ARG run_locally=false IF [ "$run_locally" = "true" ] LOCALLY ELSE - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WORKDIR /app COPY docker-compose.yml ./ END @@ -1062,7 +1062,7 @@ The best supported option, however, is to use the `earthly/dind` image, if possi ```Dockerfile # Best - if possible integration-test: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml RUN ... diff --git a/docs/guides/docker-in-earthly.md b/docs/guides/docker-in-earthly.md index b6fb23bd..ed211e17 100644 --- a/docs/guides/docker-in-earthly.md +++ b/docs/guides/docker-in-earthly.md @@ -11,7 +11,7 @@ Here is a quick example of running a `hello-world` docker container via `docker ```Dockerfile hello: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WITH DOCKER --pull hello-world RUN docker run hello-world END @@ -19,7 +19,7 @@ hello: Let's break it down. -`FROM earthly/dind:alpine-3.19-docker-25.0.3-r1` inherits from an Earthly-supported docker-in-docker (dind) image. This is recommended, because `WITH DOCKER` requires all the Docker binaries (not just the client) to be present in the build environment. +`FROM earthly/dind:alpine-3.19-docker-25.0.3-r2` inherits from an Earthly-supported docker-in-docker (dind) image. This is recommended, because `WITH DOCKER` requires all the Docker binaries (not just the client) to be present in the build environment. `WITH DOCKER ... END` starts a Docker daemon for the purpose of running Docker commands against it. At the end of the execution, this also terminates the daemon and permanently deletes all of its data (e.g. daemon cached images). @@ -38,7 +38,7 @@ build: SAVE IMAGE my-image:latest smoke-test: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WITH DOCKER --load test:latest=+build RUN docker run test:latest FROM earthly/dind:alpine @@ -54,7 +54,7 @@ smoke-test: It is possible to run `docker-compose` via `WITH DOCKER`, either explicitly, simply by running the `docker-compose` tool, or implicitly, via the `--compose` flag. The `--compose` flag allows you to specify a Docker compose stack that needs to be brought up before the execution of the `RUN` command. For example: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY docker-compose.yml ./ WITH DOCKER \ --compose docker-compose.yml \ @@ -68,7 +68,7 @@ Using the `--compose` flag has the added benefit that any images needed by the c ## Performance -It's recommended to use the `earthly/dind:alpine-3.19-docker-25.0.3-r1` image for running docker-in-docker. See the best-practices' section on using [with docker](../guides/best-practices.md#use-earthly-dind) for more details. +It's recommended to use the `earthly/dind:alpine-3.19-docker-25.0.3-r2` image for running docker-in-docker. See the best-practices' section on using [with docker](../guides/best-practices.md#use-earthly-dind) for more details. In cases when using `earthly/dind` is not possible, Earthly will attempt to install Docker in the image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. @@ -102,7 +102,7 @@ The current implementation of Docker in Earthly has a number of limitations: ... END ``` -* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.3-r1` or `earthly/dind:ubuntu-23.04-docker-24.0.9-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. +* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` or `earthly/dind:ubuntu-23.04-docker-24.0.9-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. * If you do not use an officially supported Docker-in-Docker image, Earthly will attempt to install Docker in whatever image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. * To maximize the use of cache, all external images used should be declared via the options `--pull` or `--compose`. Even though commands such as `docker run` automatically pull an image if it is not found locally, it will do so every single time the `WITH DOCKER` clause is executed, due to Docker caching not being preserved between runs. Pre-declaring the images ensures that they are properly cached by Earthly to minimize unnecessary redownloads. * `docker build` cannot be used to build Dockerfiles. However, the Earthly command `FROM DOCKERFILE` can be used instead. See [alternative to docker build](#alternative-to-docker-build) below. diff --git a/docs/guides/integration.md b/docs/guides/integration.md index a84ef50b..2629f419 100644 --- a/docs/guides/integration.md +++ b/docs/guides/integration.md @@ -133,7 +133,7 @@ We start with a simple Earthfile that can build and create a docker image for ou We start from an appropriate docker image and set up a working directory. ``` Dockerfile VERSION 0.8 -FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WORKDIR /scala-example RUN apk add openjdk11 bash wget postgresql-client ``` diff --git a/docs/guides/registries/aws-ecr.md b/docs/guides/registries/aws-ecr.md index 16b9d496..d0d25b5b 100644 --- a/docs/guides/registries/aws-ecr.md +++ b/docs/guides/registries/aws-ecr.md @@ -96,7 +96,7 @@ Loaded image: .dkr.ecr..amazonaws.com/hello-earthly:with Using this credential helper; you can also pull images without any special handling in an Earthfile: ``` -FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 run: WITH DOCKER --pull .dkr.ecr..amazonaws.com/hello-earthly:with-love @@ -109,12 +109,12 @@ And here is how you would run it: ``` ❯ earthly -P +run buildkitd | Found buildkit daemon as docker container (earthly-buildkitd) - earthly/dind:alpine-3.19-docker-25.0.3-r1 | --> Load metadata linux/amd64 + earthly/dind:alpine-3.19-docker-25.0.3-r2 | --> Load metadata linux/amd64 4/hello-earthly:with-love | --> Load metadata linux/amd64 4/hello-earthly:with-love | --> DOCKER PULL .dkr.ecr..amazonaws.com/hello-earthly:with-love 4/hello-earthly:with-love | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve .dkr.ecr..amazonaws.com/hello-earthly:with-love@sha256:9ab4df74dafa2a71d71e39e1af133d110186698c78554ab000159cfa92081de4 ... 100% - +base | --> FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 - +base | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve docker.io/earthly/dind:alpine-3.19-docker-25.0.3-r1@sha256:2cef4089960efe028de40721749e3ec6eba9f471562bf10681de729287bd78fb ... 100% + +base | --> FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + +base | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve docker.io/earthly/dind:alpine-3.19-docker-25.0.3-r2@sha256:2cef4089960efe028de40721749e3ec6eba9f471562bf10681de729287bd78fb ... 100% +run | *cached* --> WITH DOCKER (install deps) +run | *cached* --> WITH DOCKER RUN docker run .dkr.ecr..amazonaws.com/hello-earthly:with-love output | --> exporting outputs diff --git a/examples/grpc/Earthfile b/examples/grpc/Earthfile index 39faa6d6..61ea5410 100644 --- a/examples/grpc/Earthfile +++ b/examples/grpc/Earthfile @@ -35,7 +35,7 @@ WORKDIR /example-grpc # the returned value is "salmon". test: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WITH DOCKER \ --load kvserver:latest=github.com/earthly/earthly-example-proto-server:main+kvserver-docker \ --load kv-py-client:latest=github.com/earthly/earthly-example-proto-python-client:main+kvclient-docker \ diff --git a/examples/integration-test/Earthfile b/examples/integration-test/Earthfile index 37001977..12b6d996 100644 --- a/examples/integration-test/Earthfile +++ b/examples/integration-test/Earthfile @@ -1,5 +1,5 @@ VERSION 0.8 -FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 +FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WORKDIR /scala-example RUN apk add openjdk11 bash wget postgresql-client diff --git a/examples/react/Earthfile b/examples/react/Earthfile index 6d305803..0312faf2 100644 --- a/examples/react/Earthfile +++ b/examples/react/Earthfile @@ -16,7 +16,7 @@ docker: SAVE IMAGE --push earthly/examples:react run: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 WITH DOCKER --load app:test=+docker RUN docker run --rm -p 3000:80 app:test END diff --git a/examples/tutorial/go/part6/Earthfile b/examples/tutorial/go/part6/Earthfile index f82e8614..cdd17be8 100644 --- a/examples/tutorial/go/part6/Earthfile +++ b/examples/tutorial/go/part6/Earthfile @@ -29,7 +29,7 @@ test-setup: SAVE IMAGE test:latest integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml --load tests:latest=+test-setup RUN docker run --network=default_go/part6_default tests:latest | grep "ok" diff --git a/examples/tutorial/java/part6/Earthfile b/examples/tutorial/java/part6/Earthfile index 9e2cf377..51ae0d37 100644 --- a/examples/tutorial/java/part6/Earthfile +++ b/examples/tutorial/java/part6/Earthfile @@ -23,7 +23,7 @@ docker: SAVE IMAGE java-example:$tag integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY ./docker-compose.yml . RUN apk update RUN apk add postgresql-client diff --git a/examples/tutorial/js/part6/Earthfile b/examples/tutorial/js/part6/Earthfile index 19be5d85..3e9ec356 100644 --- a/examples/tutorial/js/part6/Earthfile +++ b/examples/tutorial/js/part6/Earthfile @@ -44,7 +44,7 @@ api-docker: SAVE IMAGE js-api:$tag integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 RUN apk add curl WITH DOCKER \ --load app:latest=+app-docker \ diff --git a/examples/tutorial/python/part6/Earthfile b/examples/tutorial/python/part6/Earthfile index e9018f3c..3213be5c 100644 --- a/examples/tutorial/python/part6/Earthfile +++ b/examples/tutorial/python/part6/Earthfile @@ -12,7 +12,7 @@ build: SAVE ARTIFACT src /src integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r1 + FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 COPY ./docker-compose.yml . COPY ./tests ./tests RUN apk update From 69c2eb5b4679873b88bbae7c4d15c24f37d4bf81 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 11:33:35 -0400 Subject: [PATCH 07/16] Update earthly/dind Docker tag to ubuntu-23.04-docker-25.0.1-1 (docs-0.8) (#4005) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | earthly/dind | minor | `ubuntu-23.04-docker-24.0.9-1` -> `ubuntu-23.04-docker-25.0.1-1` | --- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/earthfile/earthfile.md | 2 +- docs/guides/docker-in-earthly.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index a63ccbe6..0d07b59b 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1122,7 +1122,7 @@ For information on using `WITH DOCKER` with podman see the [Podman guide](../gui ##### Note For performance reasons, it is recommended to use a Docker image that already contains `dockerd`. If `dockerd` is not found, Earthly will attempt to install it. -Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` and `earthly/dind:ubuntu-23.04-docker-24.0.9-1` to be used together with `WITH DOCKER`. +Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` and `earthly/dind:ubuntu-23.04-docker-25.0.1-1` to be used together with `WITH DOCKER`. {% endhint %} {% hint style='info' %} diff --git a/docs/guides/docker-in-earthly.md b/docs/guides/docker-in-earthly.md index ed211e17..2268b965 100644 --- a/docs/guides/docker-in-earthly.md +++ b/docs/guides/docker-in-earthly.md @@ -102,7 +102,7 @@ The current implementation of Docker in Earthly has a number of limitations: ... END ``` -* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` or `earthly/dind:ubuntu-23.04-docker-24.0.9-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. +* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` or `earthly/dind:ubuntu-23.04-docker-25.0.1-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. * If you do not use an officially supported Docker-in-Docker image, Earthly will attempt to install Docker in whatever image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. * To maximize the use of cache, all external images used should be declared via the options `--pull` or `--compose`. Even though commands such as `docker run` automatically pull an image if it is not found locally, it will do so every single time the `WITH DOCKER` clause is executed, due to Docker caching not being preserved between runs. Pre-declaring the images ensures that they are properly cached by Earthly to minimize unnecessary redownloads. * `docker build` cannot be used to build Dockerfiles. However, the Earthly command `FROM DOCKERFILE` can be used instead. See [alternative to docker build](#alternative-to-docker-build) below. From 54aa6d85a902170692b9dedd25e859b648c61c35 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 11:13:11 -0400 Subject: [PATCH 08/16] chore(deps): update earthly/dind docker tag to alpine-3.19-docker-25.0.5-r0 (docs-0.8) (#4031) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | earthly/dind | | patch | `alpine-3.19-docker-25.0.3-r2` -> `alpine-3.19-docker-25.0.5-r0` | | earthly/dind | stage | patch | `alpine-3.19-docker-25.0.3-r2` -> `alpine-3.19-docker-25.0.5-r0` | | earthly/dind | final | patch | `alpine-3.19-docker-25.0.3-r2` -> `alpine-3.19-docker-25.0.5-r0` | --- ### Configuration πŸ“… **Schedule**: Branch creation - "after 4pm on monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/basics/part-6-using-docker-with-earthly.md | 16 ++++++++-------- docs/earthfile/earthfile.md | 4 ++-- docs/guides/best-practices.md | 6 +++--- docs/guides/docker-in-earthly.md | 12 ++++++------ docs/guides/integration.md | 2 +- docs/guides/registries/aws-ecr.md | 8 ++++---- examples/grpc/Earthfile | 2 +- examples/integration-test/Earthfile | 2 +- examples/react/Earthfile | 2 +- examples/tutorial/go/part6/Earthfile | 2 +- examples/tutorial/java/part6/Earthfile | 2 +- examples/tutorial/js/part6/Earthfile | 2 +- examples/tutorial/python/part6/Earthfile | 2 +- 13 files changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/basics/part-6-using-docker-with-earthly.md b/docs/basics/part-6-using-docker-with-earthly.md index 82f2ae8e..af967a28 100644 --- a/docs/basics/part-6-using-docker-with-earthly.md +++ b/docs/basics/part-6-using-docker-with-earthly.md @@ -10,14 +10,14 @@ Examples in [Python](#more-examples), [JavaScript](#more-examples) and [Java](#m You may find that you need to run Docker commands inside a target. For those cases Earthly offers `WITH DOCKER`. `WITH DOCKER` will initialize a Docker daemon that can be used in the context of a `RUN` command. -Whenever you need to use `WITH DOCKER` we recommend (though it is not required) that you use Earthly's own Docker in Docker (dind) image: `earthly/dind:alpine-3.19-docker-25.0.3-r2`. +Whenever you need to use `WITH DOCKER` we recommend (though it is not required) that you use Earthly's own Docker in Docker (dind) image: `earthly/dind:alpine-3.19-docker-25.0.5-r0`. -Notice `WITH DOCKER` creates a block of code that has an `END` keyword. Everything that happens within this block is going to take place within our `earthly/dind:alpine-3.19-docker-25.0.3-r2` container. +Notice `WITH DOCKER` creates a block of code that has an `END` keyword. Everything that happens within this block is going to take place within our `earthly/dind:alpine-3.19-docker-25.0.5-r0` container. ### Pulling an Image ```Dockerfile hello: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WITH DOCKER --pull hello-world RUN docker run hello-world END @@ -35,7 +35,7 @@ my-hello-world: SAVE IMAGE my-hello:latest hello: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WITH DOCKER --load hello:latest=+my-hello-world RUN docker run hello:latest END @@ -137,7 +137,7 @@ test-setup: SAVE IMAGE test:latest integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml --load tests:latest=+test-setup RUN docker run --network=default_go/part6_default tests:latest @@ -346,7 +346,7 @@ api-docker: # Run your app and api side by side app-with-api: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 RUN apk add curl WITH DOCKER \ --load app:latest=+app-docker \ @@ -401,7 +401,7 @@ docker: SAVE IMAGE java-example:$tag with-postgresql: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY ./docker-compose.yml . RUN apk update RUN apk add postgresql-client @@ -559,7 +559,7 @@ build: COPY . . run-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY ./docker-compose.yml . COPY ./tests ./tests RUN apk update diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index 0d07b59b..773b090c 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1100,7 +1100,7 @@ The `WITH DOCKER` clause only supports the command [`RUN`](#run). Other commands A typical example of a `WITH DOCKER` clause might be: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 +FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WORKDIR /test COPY docker-compose.yml ./ WITH DOCKER \ @@ -1122,7 +1122,7 @@ For information on using `WITH DOCKER` with podman see the [Podman guide](../gui ##### Note For performance reasons, it is recommended to use a Docker image that already contains `dockerd`. If `dockerd` is not found, Earthly will attempt to install it. -Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` and `earthly/dind:ubuntu-23.04-docker-25.0.1-1` to be used together with `WITH DOCKER`. +Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.5-r0` and `earthly/dind:ubuntu-23.04-docker-25.0.1-1` to be used together with `WITH DOCKER`. {% endhint %} {% hint style='info' %} diff --git a/docs/guides/best-practices.md b/docs/guides/best-practices.md index 753d8df8..945e1452 100644 --- a/docs/guides/best-practices.md +++ b/docs/guides/best-practices.md @@ -304,7 +304,7 @@ In certain cases, it may be desirable to execute certain targets on the host mac Suppose we wanted the following target to be executed on against the host's Docker daemon: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 +FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WORKDIR /app COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml \ @@ -335,7 +335,7 @@ ARG run_locally=false IF [ "$run_locally" = "true" ] LOCALLY ELSE - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WORKDIR /app COPY docker-compose.yml ./ END @@ -1062,7 +1062,7 @@ The best supported option, however, is to use the `earthly/dind` image, if possi ```Dockerfile # Best - if possible integration-test: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml RUN ... diff --git a/docs/guides/docker-in-earthly.md b/docs/guides/docker-in-earthly.md index 2268b965..eac0ff34 100644 --- a/docs/guides/docker-in-earthly.md +++ b/docs/guides/docker-in-earthly.md @@ -11,7 +11,7 @@ Here is a quick example of running a `hello-world` docker container via `docker ```Dockerfile hello: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WITH DOCKER --pull hello-world RUN docker run hello-world END @@ -19,7 +19,7 @@ hello: Let's break it down. -`FROM earthly/dind:alpine-3.19-docker-25.0.3-r2` inherits from an Earthly-supported docker-in-docker (dind) image. This is recommended, because `WITH DOCKER` requires all the Docker binaries (not just the client) to be present in the build environment. +`FROM earthly/dind:alpine-3.19-docker-25.0.5-r0` inherits from an Earthly-supported docker-in-docker (dind) image. This is recommended, because `WITH DOCKER` requires all the Docker binaries (not just the client) to be present in the build environment. `WITH DOCKER ... END` starts a Docker daemon for the purpose of running Docker commands against it. At the end of the execution, this also terminates the daemon and permanently deletes all of its data (e.g. daemon cached images). @@ -38,7 +38,7 @@ build: SAVE IMAGE my-image:latest smoke-test: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WITH DOCKER --load test:latest=+build RUN docker run test:latest FROM earthly/dind:alpine @@ -54,7 +54,7 @@ smoke-test: It is possible to run `docker-compose` via `WITH DOCKER`, either explicitly, simply by running the `docker-compose` tool, or implicitly, via the `--compose` flag. The `--compose` flag allows you to specify a Docker compose stack that needs to be brought up before the execution of the `RUN` command. For example: ```Dockerfile -FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 +FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY docker-compose.yml ./ WITH DOCKER \ --compose docker-compose.yml \ @@ -68,7 +68,7 @@ Using the `--compose` flag has the added benefit that any images needed by the c ## Performance -It's recommended to use the `earthly/dind:alpine-3.19-docker-25.0.3-r2` image for running docker-in-docker. See the best-practices' section on using [with docker](../guides/best-practices.md#use-earthly-dind) for more details. +It's recommended to use the `earthly/dind:alpine-3.19-docker-25.0.5-r0` image for running docker-in-docker. See the best-practices' section on using [with docker](../guides/best-practices.md#use-earthly-dind) for more details. In cases when using `earthly/dind` is not possible, Earthly will attempt to install Docker in the image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. @@ -102,7 +102,7 @@ The current implementation of Docker in Earthly has a number of limitations: ... END ``` -* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.3-r2` or `earthly/dind:ubuntu-23.04-docker-25.0.1-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. +* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.5-r0` or `earthly/dind:ubuntu-23.04-docker-25.0.1-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. * If you do not use an officially supported Docker-in-Docker image, Earthly will attempt to install Docker in whatever image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. * To maximize the use of cache, all external images used should be declared via the options `--pull` or `--compose`. Even though commands such as `docker run` automatically pull an image if it is not found locally, it will do so every single time the `WITH DOCKER` clause is executed, due to Docker caching not being preserved between runs. Pre-declaring the images ensures that they are properly cached by Earthly to minimize unnecessary redownloads. * `docker build` cannot be used to build Dockerfiles. However, the Earthly command `FROM DOCKERFILE` can be used instead. See [alternative to docker build](#alternative-to-docker-build) below. diff --git a/docs/guides/integration.md b/docs/guides/integration.md index 2629f419..8e8819ea 100644 --- a/docs/guides/integration.md +++ b/docs/guides/integration.md @@ -133,7 +133,7 @@ We start with a simple Earthfile that can build and create a docker image for ou We start from an appropriate docker image and set up a working directory. ``` Dockerfile VERSION 0.8 -FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 +FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WORKDIR /scala-example RUN apk add openjdk11 bash wget postgresql-client ``` diff --git a/docs/guides/registries/aws-ecr.md b/docs/guides/registries/aws-ecr.md index d0d25b5b..ace8458e 100644 --- a/docs/guides/registries/aws-ecr.md +++ b/docs/guides/registries/aws-ecr.md @@ -96,7 +96,7 @@ Loaded image: .dkr.ecr..amazonaws.com/hello-earthly:with Using this credential helper; you can also pull images without any special handling in an Earthfile: ``` -FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 +FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 run: WITH DOCKER --pull .dkr.ecr..amazonaws.com/hello-earthly:with-love @@ -109,12 +109,12 @@ And here is how you would run it: ``` ❯ earthly -P +run buildkitd | Found buildkit daemon as docker container (earthly-buildkitd) - earthly/dind:alpine-3.19-docker-25.0.3-r2 | --> Load metadata linux/amd64 + earthly/dind:alpine-3.19-docker-25.0.5-r0 | --> Load metadata linux/amd64 4/hello-earthly:with-love | --> Load metadata linux/amd64 4/hello-earthly:with-love | --> DOCKER PULL .dkr.ecr..amazonaws.com/hello-earthly:with-love 4/hello-earthly:with-love | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve .dkr.ecr..amazonaws.com/hello-earthly:with-love@sha256:9ab4df74dafa2a71d71e39e1af133d110186698c78554ab000159cfa92081de4 ... 100% - +base | --> FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 - +base | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve docker.io/earthly/dind:alpine-3.19-docker-25.0.3-r2@sha256:2cef4089960efe028de40721749e3ec6eba9f471562bf10681de729287bd78fb ... 100% + +base | --> FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 + +base | [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] resolve docker.io/earthly/dind:alpine-3.19-docker-25.0.5-r0@sha256:2cef4089960efe028de40721749e3ec6eba9f471562bf10681de729287bd78fb ... 100% +run | *cached* --> WITH DOCKER (install deps) +run | *cached* --> WITH DOCKER RUN docker run .dkr.ecr..amazonaws.com/hello-earthly:with-love output | --> exporting outputs diff --git a/examples/grpc/Earthfile b/examples/grpc/Earthfile index 61ea5410..47fdf9b8 100644 --- a/examples/grpc/Earthfile +++ b/examples/grpc/Earthfile @@ -35,7 +35,7 @@ WORKDIR /example-grpc # the returned value is "salmon". test: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WITH DOCKER \ --load kvserver:latest=github.com/earthly/earthly-example-proto-server:main+kvserver-docker \ --load kv-py-client:latest=github.com/earthly/earthly-example-proto-python-client:main+kvclient-docker \ diff --git a/examples/integration-test/Earthfile b/examples/integration-test/Earthfile index 12b6d996..1631369e 100644 --- a/examples/integration-test/Earthfile +++ b/examples/integration-test/Earthfile @@ -1,5 +1,5 @@ VERSION 0.8 -FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 +FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WORKDIR /scala-example RUN apk add openjdk11 bash wget postgresql-client diff --git a/examples/react/Earthfile b/examples/react/Earthfile index 0312faf2..077968a7 100644 --- a/examples/react/Earthfile +++ b/examples/react/Earthfile @@ -16,7 +16,7 @@ docker: SAVE IMAGE --push earthly/examples:react run: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 WITH DOCKER --load app:test=+docker RUN docker run --rm -p 3000:80 app:test END diff --git a/examples/tutorial/go/part6/Earthfile b/examples/tutorial/go/part6/Earthfile index cdd17be8..dfcd13c5 100644 --- a/examples/tutorial/go/part6/Earthfile +++ b/examples/tutorial/go/part6/Earthfile @@ -29,7 +29,7 @@ test-setup: SAVE IMAGE test:latest integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY docker-compose.yml ./ WITH DOCKER --compose docker-compose.yml --load tests:latest=+test-setup RUN docker run --network=default_go/part6_default tests:latest | grep "ok" diff --git a/examples/tutorial/java/part6/Earthfile b/examples/tutorial/java/part6/Earthfile index 51ae0d37..4795d0fc 100644 --- a/examples/tutorial/java/part6/Earthfile +++ b/examples/tutorial/java/part6/Earthfile @@ -23,7 +23,7 @@ docker: SAVE IMAGE java-example:$tag integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY ./docker-compose.yml . RUN apk update RUN apk add postgresql-client diff --git a/examples/tutorial/js/part6/Earthfile b/examples/tutorial/js/part6/Earthfile index 3e9ec356..e7e146c6 100644 --- a/examples/tutorial/js/part6/Earthfile +++ b/examples/tutorial/js/part6/Earthfile @@ -44,7 +44,7 @@ api-docker: SAVE IMAGE js-api:$tag integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 RUN apk add curl WITH DOCKER \ --load app:latest=+app-docker \ diff --git a/examples/tutorial/python/part6/Earthfile b/examples/tutorial/python/part6/Earthfile index 3213be5c..296a2922 100644 --- a/examples/tutorial/python/part6/Earthfile +++ b/examples/tutorial/python/part6/Earthfile @@ -12,7 +12,7 @@ build: SAVE ARTIFACT src /src integration-tests: - FROM earthly/dind:alpine-3.19-docker-25.0.3-r2 + FROM earthly/dind:alpine-3.19-docker-25.0.5-r0 COPY ./docker-compose.yml . COPY ./tests ./tests RUN apk update From cfb4c8e45590160345458ef253af2f8bcfd01268 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 11:00:14 -0700 Subject: [PATCH 09/16] chore(deps): update dependency earthly/earthly to v0.8.8 (docs-0.8) (#4033) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [earthly/earthly](https://togithub.com/earthly/earthly) | patch | `v0.8.7` -> `v0.8.8` | --- ### Release Notes
earthly/earthly (earthly/earthly) ### [`v0.8.8`](https://togithub.com/earthly/earthly/blob/HEAD/CHANGELOG.md#v088---2024-04-17) [Compare Source](https://togithub.com/earthly/earthly/compare/v0.8.7...v0.8.8) ##### Added - New experimental wildcard-based copy, e.g. `COPY ./services/*+artifact/* .` which would invoke `COPY` for `./services/foo+artifact`, and `./services/bar+artifact` (assuming two services foo and bar, both having a `artifact` target in their respective Earthfile). Enable with the `VERSION --wildcard-copy` feature flag. [#​3966](https://togithub.com/earthly/earthly/issues/3966). - New built-in `ARG`s - `EARTHLY_GIT_AUTHOR_EMAIL` and `EARTHLY_GIT_AUTHOR_NAME` will contain the author email and author name respectively. Enable with the `VERSION --git-author-email-name-args` feature flag. ##### Changed - `EARTHLY_GIT_AUTHOR` built-in `ARG` will now contain both name and email, when enabled with the `VERSION --git-author-email-name-args` feature flag. Previously it only contained the email. [#​3822](https://togithub.com/earthly/earthly/issues/3822) - New `--raw-output` flag available on `RUN` that outputs line without target name. Enable with `VERSION --raw-output`. [#​3713](https://togithub.com/earthly/earthly/issues/3713) ##### Fixed - Make `LET`/`SET` commands block parallel commands such as `BUILD` until the former are processed, similar to the behavior of `ARG`. [#​3997](https://togithub.com/earthly/earthly/issues/3997) - `LET`/`SET` commands were not properly handled with the use of Auto-skip. [#​3996](https://togithub.com/earthly/earthly/issues/3996) ##### Additional Info - This release has no changes to buildkit
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../part-8a-using-earthly-in-your-current-ci.md | 4 ++-- docs/ci-integration/build-an-earthly-ci-image.md | 4 ++-- .../guides/bitbucket-pipelines-integration.md | 2 +- docs/ci-integration/guides/circle-integration.md | 2 +- docs/ci-integration/guides/codebuild-integration.md | 2 +- docs/ci-integration/guides/gh-actions-integration.md | 2 +- docs/ci-integration/guides/gitlab-integration.md | 2 +- docs/ci-integration/guides/google-cloud-build.md | 4 ++-- docs/ci-integration/guides/woodpecker-integration.md | 2 +- docs/ci-integration/overview.md | 2 +- docs/ci-integration/use-earthly-ci-image.md | 6 +++--- docs/cloud/satellites/self-hosted.md | 8 ++++---- docs/docker-images/all-in-one.md | 12 ++++++------ docs/docker-images/buildkit-standalone.md | 2 +- docs/guides/importing.md | 10 +++++----- docs/guides/target-ref.md | 10 +++++----- release/README.md | 2 +- 17 files changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/basics/part-8a-using-earthly-in-your-current-ci.md b/docs/basics/part-8a-using-earthly-in-your-current-ci.md index c1783548..73fc4be0 100644 --- a/docs/basics/part-8a-using-earthly-in-your-current-ci.md +++ b/docs/basics/part-8a-using-earthly-in-your-current-ci.md @@ -41,7 +41,7 @@ jobs: steps: - uses: earthly/actions/setup-earthly@v1 with: - version: v0.8.7 + version: v0.8.8 - uses: actions/checkout@v2 - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" @@ -51,7 +51,7 @@ jobs: Here is an explanation of the steps above: -* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` +* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` * The command `docker login` performs a login to the DockerHub registry. This is required, to prevent rate-limiting issues when using popular base images. * The command `earthly --org ... --sat ... --ci --push +build` executes the build. The `--ci` flag is used here, in order to force the use of `--strict` mode. In `--strict` mode, Earthly prevents the use of features that make the build less repeatable and also disables local outputs -- because artifacts and images resulting from the build are not needed within the CI environment. Any outputs should be pushed via `RUN --push` or `SAVE IMAGE --push` commands. The flags `--org` and `--sat` allow you to select the organization and satellite to use for the build. If no satellite is specified, the build will be executed in the CI environment itself, with limited caching. diff --git a/docs/ci-integration/build-an-earthly-ci-image.md b/docs/ci-integration/build-an-earthly-ci-image.md index 3ebb72c8..11fce6e1 100644 --- a/docs/ci-integration/build-an-earthly-ci-image.md +++ b/docs/ci-integration/build-an-earthly-ci-image.md @@ -18,7 +18,7 @@ This guide will cover both approaches to constructing your image. This is the recommended approach when adopting Earthly into your containerized CI. Start by basing your custom image on ours: ```docker -FROM earthly/earthly:v0.8.7 +FROM earthly/earthly:v0.8.8 RUN ... # Add your agent, certificates, tools... ``` @@ -50,7 +50,7 @@ In this setup, Earthly will be allowed to manage an instance of its `earthly/bui To enable this, simply follow the installation instructions within your Dockerfile/Earthfile as you would on any other host. An example of installing this can be found below. ```docker -RUN wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +RUN wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/guides/bitbucket-pipelines-integration.md b/docs/ci-integration/guides/bitbucket-pipelines-integration.md index 2a17034b..bb24b36f 100644 --- a/docs/ci-integration/guides/bitbucket-pipelines-integration.md +++ b/docs/ci-integration/guides/bitbucket-pipelines-integration.md @@ -7,7 +7,7 @@ You can however, run Earthly builds on Bitbucket pipelines via [remote runners]( ```yml # ./bitbucket-pipelines.yml -image: earthly/earthly:v0.8.7 +image: earthly/earthly:v0.8.8 pipelines: default: diff --git a/docs/ci-integration/guides/circle-integration.md b/docs/ci-integration/guides/circle-integration.md index 1d25eaf8..972ae1f9 100644 --- a/docs/ci-integration/guides/circle-integration.md +++ b/docs/ci-integration/guides/circle-integration.md @@ -14,7 +14,7 @@ jobs: steps: - checkout - run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/codebuild-integration.md b/docs/ci-integration/guides/codebuild-integration.md index d908b03f..681db707 100644 --- a/docs/ci-integration/guides/codebuild-integration.md +++ b/docs/ci-integration/guides/codebuild-integration.md @@ -18,7 +18,7 @@ version: 0.2 phases: install: commands: - - wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly + - wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly pre_build: commands: - echo Logging into Docker diff --git a/docs/ci-integration/guides/gh-actions-integration.md b/docs/ci-integration/guides/gh-actions-integration.md index 5b83622b..3a55b0cd 100644 --- a/docs/ci-integration/guides/gh-actions-integration.md +++ b/docs/ci-integration/guides/gh-actions-integration.md @@ -60,7 +60,7 @@ jobs: - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - name: Download latest earthly - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - name: Run build run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/gitlab-integration.md b/docs/ci-integration/guides/gitlab-integration.md index 931a9824..295c69c3 100644 --- a/docs/ci-integration/guides/gitlab-integration.md +++ b/docs/ci-integration/guides/gitlab-integration.md @@ -15,7 +15,7 @@ variables: FORCE_COLOR: 1 EARTHLY_EXEC_CMD: "/bin/sh" -image: earthly/earthly:v0.8.7 +image: earthly/earthly:v0.8.8 before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY diff --git a/docs/ci-integration/guides/google-cloud-build.md b/docs/ci-integration/guides/google-cloud-build.md index c6857c6b..edc70ebb 100644 --- a/docs/ci-integration/guides/google-cloud-build.md +++ b/docs/ci-integration/guides/google-cloud-build.md @@ -106,7 +106,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'build' - name: 'earthly/earthly:v0.8.7' + name: 'earthly/earthly:v0.8.8' args: - --ci - --push @@ -117,7 +117,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'gcp-test' - name: 'earthly/earthly:v0.8.7' + name: 'earthly/earthly:v0.8.8' args: - +gcp-cloudbuild secretEnv: diff --git a/docs/ci-integration/guides/woodpecker-integration.md b/docs/ci-integration/guides/woodpecker-integration.md index 22b01c32..ce11c35b 100644 --- a/docs/ci-integration/guides/woodpecker-integration.md +++ b/docs/ci-integration/guides/woodpecker-integration.md @@ -14,7 +14,7 @@ The project needs to be [trusted](https://woodpecker-ci.org/docs/usage/project-s #.woodpecker.yml pipeline: earthly: - image: earthly/earthly:v0.8.7 + image: earthly/earthly:v0.8.8 volumes: - /var/run/docker.sock:/var/run/docker.sock environment: diff --git a/docs/ci-integration/overview.md b/docs/ci-integration/overview.md index d3499f59..2cf0bc29 100644 --- a/docs/ci-integration/overview.md +++ b/docs/ci-integration/overview.md @@ -27,7 +27,7 @@ Once you have ensured that the dependencies are available, you'll need to instal This is the simplest method for adding `earthly` to your CI. It will work best on dedicated computers, or in scripted/auto-provisioned build environments. You can pin it to a specific version like so: ```shell -wget https://github.com/earthly/earthly/releases/download/v0.8.7/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/use-earthly-ci-image.md b/docs/ci-integration/use-earthly-ci-image.md index f80ff5e5..aa90d43a 100644 --- a/docs/ci-integration/use-earthly-ci-image.md +++ b/docs/ci-integration/use-earthly-ci-image.md @@ -36,19 +36,19 @@ For more details on using remote execution, [see our guide on remote Buildkit](. The image expects the source code of the application you are building in the current working directory (by default `/workspace`). You will need to copy or mount the necessary files to that directory prior to invoking the entrypoint. ```bash -docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.7 +my-target +docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.8 +my-target ``` Or, if you would like to use an alternative directory: ```bash -docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.7 +my-target +docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.8 +my-target ``` Alternatively, you may rely on Earthly to perform a git clone, by using the remote target reference format. For example: ```bash -docker run --privileged --rm earthly/earthly:v0.8.7 github.com/foo/bar:my-branch+target +docker run --privileged --rm earthly/earthly:v0.8.8 github.com/foo/bar:my-branch+target ``` #### `NO_BUILDKIT` Environment Variable diff --git a/docs/cloud/satellites/self-hosted.md b/docs/cloud/satellites/self-hosted.md index d881a7e2..354d6d92 100644 --- a/docs/cloud/satellites/self-hosted.md +++ b/docs/cloud/satellites/self-hosted.md @@ -26,7 +26,7 @@ docker run --privileged \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ - earthly/satellite:v0.8.7 + earthly/satellite:v0.8.8 ``` The following environment variables are required: @@ -107,7 +107,7 @@ runcmd: -e EARTHLY_TOKEN=GuFna*****nve7e \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ - earthly/satellite:v0.8.7 + earthly/satellite:v0.8.8 ``` Note that the `SATELLITE_HOST` variable is unset in this example so that the host is auto-discovered by the satellite when it starts. This should result in the instance’s private DNS being used as the host. @@ -134,7 +134,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: earthly/satellite:v0.8.7 + image: earthly/satellite:v0.8.8 securityContext: privileged: true ports: @@ -174,7 +174,7 @@ Here’s an example of how to attach the volume using the Docker command line: ``` docker run -v earthly-cache:/tmp/earthly:rw \ ... - earthly/satellite:v0.8.7 + earthly/satellite:v0.8.8 ``` ## Additional Environment Variables diff --git a/docs/docker-images/all-in-one.md b/docs/docker-images/all-in-one.md index 68b719cd..09e8c747 100644 --- a/docs/docker-images/all-in-one.md +++ b/docs/docker-images/all-in-one.md @@ -2,7 +2,7 @@ This image contains `earthly`, `buildkit`, and some extra configuration to enabl ## Tags -Currently, the `latest` tag is `v0.8.7`. +Currently, the `latest` tag is `v0.8.8`. For other available tags, please check out https://hub.docker.com/r/earthly/earthly/tags ## Quickstart @@ -14,7 +14,7 @@ Want to get started? Here are a couple sample `docker run` commands that cover t This example shows how to use the Earthly container in conjunction with a Docker socket that Earthly can use to start up the Buildkit daemon. ```bash -docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.7 +for-linux +docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.8 +for-linux ``` Here's a quick breakdown: @@ -30,7 +30,7 @@ Here's a quick breakdown: This example shows how the Earthly image can start a Buildkit daemon within the same container. A Docker socket is not needed in this case, however the container will need to be run with the `--privileged` flag. ```bash -docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.7 +for-linux +docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.8 +for-linux ``` Here's a quick breakdown: @@ -46,7 +46,7 @@ Here's a quick breakdown: This example utilizes an [Earthly Satellite](https://docs.earthly.dev/earthly-cloud/satellites) to perform builds. The code to be built is downloaded directly from GitHub. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.7 --ci --org --sat github.com/earthly/earthly+for-linux +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.8 --ci --org --sat github.com/earthly/earthly+for-linux ``` Here's what this does: @@ -61,11 +61,11 @@ Here's what this does: This example shows how to use the Earthly container to run non-build commands. This is useful for running commands like `earthly account`, or `earthly secret`. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.7 account list-tokens +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.8 account list-tokens ``` ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.7 secret get foo +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.8 secret get foo ``` ## Using This Image diff --git a/docs/docker-images/buildkit-standalone.md b/docs/docker-images/buildkit-standalone.md index 1cee728a..625147a4 100644 --- a/docs/docker-images/buildkit-standalone.md +++ b/docs/docker-images/buildkit-standalone.md @@ -4,7 +4,7 @@ This image contains `buildkit` with some Earthly-specific setup. This is what Ea ## Tags -Currently, the `latest` tag is `v0.8.7`. +Currently, the `latest` tag is `v0.8.8`. For other available tags, please check out https://hub.docker.com/r/earthly/buildkitd/tags ## Quickstart diff --git a/docs/guides/importing.md b/docs/guides/importing.md index 76579777..9ef7300e 100644 --- a/docs/guides/importing.md +++ b/docs/guides/importing.md @@ -96,7 +96,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.7+earthly` +* `github.com/earthly/earthly:v0.8.8+earthly` * `my-import+build` ## Artifact reference @@ -110,7 +110,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.7+earthly/earthly` +* `github.com/earthly/earthly:v0.8.8+earthly/earthly` * `my-import+build/my-artifact` ## Image reference @@ -131,7 +131,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.7+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.8+DOWNLOAD_DIND` * `my-import+COMPILE` For more information on functions, see the [Functions Guide](./functions.md). @@ -176,7 +176,7 @@ Another form of a Earthfile reference is the remote form. In this form, the reci |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.7` | `github.com/earthly/earthly:v0.8.7+build` | `github.com/earthly/earthly:v0.8.7+build/out.bin` | `github.com/earthly/earthly:v0.8.7+COMPILE` | +| `github.com/earthly/earthly:v0.8.8` | `github.com/earthly/earthly:v0.8.8+build` | `github.com/earthly/earthly:v0.8.8+build/out.bin` | `github.com/earthly/earthly:v0.8.8+COMPILE` | ### Import reference @@ -186,7 +186,7 @@ Finally, the last form of Earthfile referencing is an import reference. Import r |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.7` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.8` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/docs/guides/target-ref.md b/docs/guides/target-ref.md index f5f25eb7..feae3990 100644 --- a/docs/guides/target-ref.md +++ b/docs/guides/target-ref.md @@ -20,7 +20,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.7+earthly` +* `github.com/earthly/earthly:v0.8.8+earthly` ## Artifact reference @@ -33,7 +33,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.7+earthly/earthly` +* `github.com/earthly/earthly:v0.8.8+earthly/earthly` ## Image reference @@ -53,7 +53,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.7+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.8+DOWNLOAD_DIND` For more information on functions, see the [functions guide](./functions.md). @@ -93,7 +93,7 @@ Another form of a project reference is the remote form. In this form, the recipe |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.7` | `github.com/earthly/earthly:v0.8.7+build` | `github.com/earthly/earthly:v0.8.7+build/out.bin` | `github.com/earthly/earthly:v0.8.7+COMPILE` | +| `github.com/earthly/earthly:v0.8.8` | `github.com/earthly/earthly:v0.8.8+build` | `github.com/earthly/earthly:v0.8.8+build/out.bin` | `github.com/earthly/earthly:v0.8.8+COMPILE` | ### Import reference @@ -103,7 +103,7 @@ Finally, the last form of project referencing is an import reference. Import ref |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.7` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.8` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/release/README.md b/release/README.md index 384b107b..49a1c953 100644 --- a/release/README.md +++ b/release/README.md @@ -18,7 +18,7 @@ git checkout main && git pull ``` * Update the CHANGELOG.md with the corresponding release notes and open a PR - * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.7...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. + * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.8...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. * Make sure that main build is green for all platforms (check build status for the latest commit on GitHub). * Make sure the following build status are green: | Platform | Status | From f12862bb217c669c00aa18d89bc3b42e60200970 Mon Sep 17 00:00:00 2001 From: Alex Couture-Beil Date: Thu, 18 Apr 2024 15:03:13 -0700 Subject: [PATCH 10/16] docs: include example IF that uses a custom script (#4037) fixes #3145 Signed-off-by: Alex Couture-Beil --- docs/earthfile/earthfile.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index d26f2408..5609521d 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1304,6 +1304,8 @@ This option is deprecated. Please use `--load =( --` is evaluated by running it in the build environment. If the exit code of the expression is zero, then the block of that condition is executed. Otherwise, the control continues to the next `ELSE IF` condition (if any), or if no condition returns a non-zero exit code, the control continues to executing the ``, if one is provided. +#### Examples + A very common pattern is to use the POSIX shell `[ ... ]` conditions. For example the following marks port `8080` as exposed if the file `./foo` exists. ```Dockerfile @@ -1312,6 +1314,40 @@ IF [ -f ./foo ] END ``` +It is also possible to call other commands, which can be useful for more comparisons such as semantic versioning. For example: + +```Dockerfile +VERSION 0.8 + +test: + FROM python:3 + RUN pip3 install semver + + # The following python script requires two arguments (v1 and v2) + # and will return an exit code of 0 when v1 is semantically greater than v2 + # or an exit code of 1 in all other cases. + RUN echo "#!/usr/bin/env python3 +import sys +import semver +v1 = sys.argv[1] +v2 = sys.argv[2] +if semver.compare(v1, v2) > 0: + sys.exit(0) +sys.exit(1) + " > ./semver-gt && chmod +x semver-gt + + # Define two different versions + ARG A="0.3.2" + ARG B="0.10.1" + + # and compare them + IF ./semver-gt "$A" "$B" + RUN echo "A ($A) is semantically greater than B ($B)" + ELSE + RUN echo "A ($A) is NOT semantically greater than B ($B)" + END +``` + {% hint style='info' %} ##### Note Performing a condition requires that a `FROM` (or a from-like command, such as `LOCALLY`) has been issued before the condition itself. From 7c69ba83f1bd994f848d99a4d224ed624c778710 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 23:03:59 -0400 Subject: [PATCH 11/16] chore(deps): update earthly/dind docker tag to ubuntu-23.04-docker-25.0.2-1 (docs-0.8) (#4053) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | earthly/dind | patch | `ubuntu-23.04-docker-25.0.1-1` -> `ubuntu-23.04-docker-25.0.2-1` | --- ### Configuration πŸ“… **Schedule**: Branch creation - "after 4pm on monday" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- docs/earthfile/earthfile.md | 2 +- docs/guides/docker-in-earthly.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/earthfile/earthfile.md b/docs/earthfile/earthfile.md index 5609521d..ccfa18e7 100644 --- a/docs/earthfile/earthfile.md +++ b/docs/earthfile/earthfile.md @@ -1214,7 +1214,7 @@ For information on using `WITH DOCKER` with podman see the [Podman guide](../gui ##### Note For performance reasons, it is recommended to use a Docker image that already contains `dockerd`. If `dockerd` is not found, Earthly will attempt to install it. -Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.5-r0` and `earthly/dind:ubuntu-23.04-docker-25.0.1-1` to be used together with `WITH DOCKER`. +Earthly provides officially supported images such as `earthly/dind:alpine-3.19-docker-25.0.5-r0` and `earthly/dind:ubuntu-23.04-docker-25.0.2-1` to be used together with `WITH DOCKER`. {% endhint %} {% hint style='info' %} diff --git a/docs/guides/docker-in-earthly.md b/docs/guides/docker-in-earthly.md index eac0ff34..06f12c43 100644 --- a/docs/guides/docker-in-earthly.md +++ b/docs/guides/docker-in-earthly.md @@ -102,7 +102,7 @@ The current implementation of Docker in Earthly has a number of limitations: ... END ``` -* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.5-r0` or `earthly/dind:ubuntu-23.04-docker-25.0.1-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. +* It is recommended that the target containing the `WITH DOCKER` clause inherits from a supported Docker-in-Docker (dind) image such as `earthly/dind:alpine-3.19-docker-25.0.5-r0` or `earthly/dind:ubuntu-23.04-docker-25.0.2-1`. If your build requires the use of an alternative environment as part of a test (e.g. to run commands like `sbt test` or `go test` together with a docker-compose stack), consider placing the test itself in a Docker image, then loading that image via `--load` and running the test as a Docker container. * If you do not use an officially supported Docker-in-Docker image, Earthly will attempt to install Docker in whatever image you have chosen. This has the drawback of not being able to use cache efficiently and is not recommended for performance reasons. * To maximize the use of cache, all external images used should be declared via the options `--pull` or `--compose`. Even though commands such as `docker run` automatically pull an image if it is not found locally, it will do so every single time the `WITH DOCKER` clause is executed, due to Docker caching not being preserved between runs. Pre-declaring the images ensures that they are properly cached by Earthly to minimize unnecessary redownloads. * `docker build` cannot be used to build Dockerfiles. However, the Earthly command `FROM DOCKERFILE` can be used instead. See [alternative to docker build](#alternative-to-docker-build) below. From 53b10631fbf48b185dcd0234d9547692e600a0b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 24 Apr 2024 10:51:49 -0700 Subject: [PATCH 12/16] chore(deps): update dependency earthly/earthly to v0.8.9 (docs-0.8) (#4060) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [earthly/earthly](https://togithub.com/earthly/earthly) | patch | `v0.8.8` -> `v0.8.9` | --- ### Release Notes
earthly/earthly (earthly/earthly) ### [`v0.8.9`](https://togithub.com/earthly/earthly/blob/HEAD/CHANGELOG.md#v089---2024-04-24) [Compare Source](https://togithub.com/earthly/earthly/compare/v0.8.8...v0.8.9) ##### Fixed - `BUILD --auto-skip` was recording failed steps as complete, which would lead to them being skipped on subsequent runs. [#​4054](https://togithub.com/earthly/earthly/issues/4054) ##### Additional Info - This release has no changes to buildkit
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../part-8a-using-earthly-in-your-current-ci.md | 4 ++-- docs/ci-integration/build-an-earthly-ci-image.md | 4 ++-- .../guides/bitbucket-pipelines-integration.md | 2 +- docs/ci-integration/guides/circle-integration.md | 2 +- docs/ci-integration/guides/codebuild-integration.md | 2 +- docs/ci-integration/guides/gh-actions-integration.md | 2 +- docs/ci-integration/guides/gitlab-integration.md | 2 +- docs/ci-integration/guides/google-cloud-build.md | 4 ++-- docs/ci-integration/guides/woodpecker-integration.md | 2 +- docs/ci-integration/overview.md | 2 +- docs/ci-integration/use-earthly-ci-image.md | 6 +++--- docs/cloud/satellites/self-hosted.md | 8 ++++---- docs/docker-images/all-in-one.md | 12 ++++++------ docs/docker-images/buildkit-standalone.md | 2 +- docs/guides/importing.md | 10 +++++----- docs/guides/target-ref.md | 10 +++++----- release/README.md | 2 +- 17 files changed, 38 insertions(+), 38 deletions(-) diff --git a/docs/basics/part-8a-using-earthly-in-your-current-ci.md b/docs/basics/part-8a-using-earthly-in-your-current-ci.md index 73fc4be0..ea8b0bae 100644 --- a/docs/basics/part-8a-using-earthly-in-your-current-ci.md +++ b/docs/basics/part-8a-using-earthly-in-your-current-ci.md @@ -41,7 +41,7 @@ jobs: steps: - uses: earthly/actions/setup-earthly@v1 with: - version: v0.8.8 + version: v0.8.9 - uses: actions/checkout@v2 - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" @@ -51,7 +51,7 @@ jobs: Here is an explanation of the steps above: -* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` +* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` * The command `docker login` performs a login to the DockerHub registry. This is required, to prevent rate-limiting issues when using popular base images. * The command `earthly --org ... --sat ... --ci --push +build` executes the build. The `--ci` flag is used here, in order to force the use of `--strict` mode. In `--strict` mode, Earthly prevents the use of features that make the build less repeatable and also disables local outputs -- because artifacts and images resulting from the build are not needed within the CI environment. Any outputs should be pushed via `RUN --push` or `SAVE IMAGE --push` commands. The flags `--org` and `--sat` allow you to select the organization and satellite to use for the build. If no satellite is specified, the build will be executed in the CI environment itself, with limited caching. diff --git a/docs/ci-integration/build-an-earthly-ci-image.md b/docs/ci-integration/build-an-earthly-ci-image.md index 11fce6e1..b4b9178e 100644 --- a/docs/ci-integration/build-an-earthly-ci-image.md +++ b/docs/ci-integration/build-an-earthly-ci-image.md @@ -18,7 +18,7 @@ This guide will cover both approaches to constructing your image. This is the recommended approach when adopting Earthly into your containerized CI. Start by basing your custom image on ours: ```docker -FROM earthly/earthly:v0.8.8 +FROM earthly/earthly:v0.8.9 RUN ... # Add your agent, certificates, tools... ``` @@ -50,7 +50,7 @@ In this setup, Earthly will be allowed to manage an instance of its `earthly/bui To enable this, simply follow the installation instructions within your Dockerfile/Earthfile as you would on any other host. An example of installing this can be found below. ```docker -RUN wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +RUN wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/guides/bitbucket-pipelines-integration.md b/docs/ci-integration/guides/bitbucket-pipelines-integration.md index bb24b36f..b7de2feb 100644 --- a/docs/ci-integration/guides/bitbucket-pipelines-integration.md +++ b/docs/ci-integration/guides/bitbucket-pipelines-integration.md @@ -7,7 +7,7 @@ You can however, run Earthly builds on Bitbucket pipelines via [remote runners]( ```yml # ./bitbucket-pipelines.yml -image: earthly/earthly:v0.8.8 +image: earthly/earthly:v0.8.9 pipelines: default: diff --git a/docs/ci-integration/guides/circle-integration.md b/docs/ci-integration/guides/circle-integration.md index 972ae1f9..7712e71e 100644 --- a/docs/ci-integration/guides/circle-integration.md +++ b/docs/ci-integration/guides/circle-integration.md @@ -14,7 +14,7 @@ jobs: steps: - checkout - run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/codebuild-integration.md b/docs/ci-integration/guides/codebuild-integration.md index 681db707..4a96ec97 100644 --- a/docs/ci-integration/guides/codebuild-integration.md +++ b/docs/ci-integration/guides/codebuild-integration.md @@ -18,7 +18,7 @@ version: 0.2 phases: install: commands: - - wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly + - wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly pre_build: commands: - echo Logging into Docker diff --git a/docs/ci-integration/guides/gh-actions-integration.md b/docs/ci-integration/guides/gh-actions-integration.md index 3a55b0cd..1853ce63 100644 --- a/docs/ci-integration/guides/gh-actions-integration.md +++ b/docs/ci-integration/guides/gh-actions-integration.md @@ -60,7 +60,7 @@ jobs: - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - name: Download latest earthly - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - name: Run build run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/gitlab-integration.md b/docs/ci-integration/guides/gitlab-integration.md index 295c69c3..2d1e3938 100644 --- a/docs/ci-integration/guides/gitlab-integration.md +++ b/docs/ci-integration/guides/gitlab-integration.md @@ -15,7 +15,7 @@ variables: FORCE_COLOR: 1 EARTHLY_EXEC_CMD: "/bin/sh" -image: earthly/earthly:v0.8.8 +image: earthly/earthly:v0.8.9 before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY diff --git a/docs/ci-integration/guides/google-cloud-build.md b/docs/ci-integration/guides/google-cloud-build.md index edc70ebb..d5b83f62 100644 --- a/docs/ci-integration/guides/google-cloud-build.md +++ b/docs/ci-integration/guides/google-cloud-build.md @@ -106,7 +106,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'build' - name: 'earthly/earthly:v0.8.8' + name: 'earthly/earthly:v0.8.9' args: - --ci - --push @@ -117,7 +117,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'gcp-test' - name: 'earthly/earthly:v0.8.8' + name: 'earthly/earthly:v0.8.9' args: - +gcp-cloudbuild secretEnv: diff --git a/docs/ci-integration/guides/woodpecker-integration.md b/docs/ci-integration/guides/woodpecker-integration.md index ce11c35b..973ddb16 100644 --- a/docs/ci-integration/guides/woodpecker-integration.md +++ b/docs/ci-integration/guides/woodpecker-integration.md @@ -14,7 +14,7 @@ The project needs to be [trusted](https://woodpecker-ci.org/docs/usage/project-s #.woodpecker.yml pipeline: earthly: - image: earthly/earthly:v0.8.8 + image: earthly/earthly:v0.8.9 volumes: - /var/run/docker.sock:/var/run/docker.sock environment: diff --git a/docs/ci-integration/overview.md b/docs/ci-integration/overview.md index 2cf0bc29..625528bc 100644 --- a/docs/ci-integration/overview.md +++ b/docs/ci-integration/overview.md @@ -27,7 +27,7 @@ Once you have ensured that the dependencies are available, you'll need to instal This is the simplest method for adding `earthly` to your CI. It will work best on dedicated computers, or in scripted/auto-provisioned build environments. You can pin it to a specific version like so: ```shell -wget https://github.com/earthly/earthly/releases/download/v0.8.8/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/use-earthly-ci-image.md b/docs/ci-integration/use-earthly-ci-image.md index aa90d43a..ac5a2ad8 100644 --- a/docs/ci-integration/use-earthly-ci-image.md +++ b/docs/ci-integration/use-earthly-ci-image.md @@ -36,19 +36,19 @@ For more details on using remote execution, [see our guide on remote Buildkit](. The image expects the source code of the application you are building in the current working directory (by default `/workspace`). You will need to copy or mount the necessary files to that directory prior to invoking the entrypoint. ```bash -docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.8 +my-target +docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.9 +my-target ``` Or, if you would like to use an alternative directory: ```bash -docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.8 +my-target +docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.9 +my-target ``` Alternatively, you may rely on Earthly to perform a git clone, by using the remote target reference format. For example: ```bash -docker run --privileged --rm earthly/earthly:v0.8.8 github.com/foo/bar:my-branch+target +docker run --privileged --rm earthly/earthly:v0.8.9 github.com/foo/bar:my-branch+target ``` #### `NO_BUILDKIT` Environment Variable diff --git a/docs/cloud/satellites/self-hosted.md b/docs/cloud/satellites/self-hosted.md index 354d6d92..d20a8f16 100644 --- a/docs/cloud/satellites/self-hosted.md +++ b/docs/cloud/satellites/self-hosted.md @@ -26,7 +26,7 @@ docker run --privileged \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ - earthly/satellite:v0.8.8 + earthly/satellite:v0.8.9 ``` The following environment variables are required: @@ -107,7 +107,7 @@ runcmd: -e EARTHLY_TOKEN=GuFna*****nve7e \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ - earthly/satellite:v0.8.8 + earthly/satellite:v0.8.9 ``` Note that the `SATELLITE_HOST` variable is unset in this example so that the host is auto-discovered by the satellite when it starts. This should result in the instance’s private DNS being used as the host. @@ -134,7 +134,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: earthly/satellite:v0.8.8 + image: earthly/satellite:v0.8.9 securityContext: privileged: true ports: @@ -174,7 +174,7 @@ Here’s an example of how to attach the volume using the Docker command line: ``` docker run -v earthly-cache:/tmp/earthly:rw \ ... - earthly/satellite:v0.8.8 + earthly/satellite:v0.8.9 ``` ## Additional Environment Variables diff --git a/docs/docker-images/all-in-one.md b/docs/docker-images/all-in-one.md index 09e8c747..9f5306b4 100644 --- a/docs/docker-images/all-in-one.md +++ b/docs/docker-images/all-in-one.md @@ -2,7 +2,7 @@ This image contains `earthly`, `buildkit`, and some extra configuration to enabl ## Tags -Currently, the `latest` tag is `v0.8.8`. +Currently, the `latest` tag is `v0.8.9`. For other available tags, please check out https://hub.docker.com/r/earthly/earthly/tags ## Quickstart @@ -14,7 +14,7 @@ Want to get started? Here are a couple sample `docker run` commands that cover t This example shows how to use the Earthly container in conjunction with a Docker socket that Earthly can use to start up the Buildkit daemon. ```bash -docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.8 +for-linux +docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.9 +for-linux ``` Here's a quick breakdown: @@ -30,7 +30,7 @@ Here's a quick breakdown: This example shows how the Earthly image can start a Buildkit daemon within the same container. A Docker socket is not needed in this case, however the container will need to be run with the `--privileged` flag. ```bash -docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.8 +for-linux +docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.9 +for-linux ``` Here's a quick breakdown: @@ -46,7 +46,7 @@ Here's a quick breakdown: This example utilizes an [Earthly Satellite](https://docs.earthly.dev/earthly-cloud/satellites) to perform builds. The code to be built is downloaded directly from GitHub. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.8 --ci --org --sat github.com/earthly/earthly+for-linux +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.9 --ci --org --sat github.com/earthly/earthly+for-linux ``` Here's what this does: @@ -61,11 +61,11 @@ Here's what this does: This example shows how to use the Earthly container to run non-build commands. This is useful for running commands like `earthly account`, or `earthly secret`. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.8 account list-tokens +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.9 account list-tokens ``` ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.8 secret get foo +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.9 secret get foo ``` ## Using This Image diff --git a/docs/docker-images/buildkit-standalone.md b/docs/docker-images/buildkit-standalone.md index 625147a4..c1fbccb9 100644 --- a/docs/docker-images/buildkit-standalone.md +++ b/docs/docker-images/buildkit-standalone.md @@ -4,7 +4,7 @@ This image contains `buildkit` with some Earthly-specific setup. This is what Ea ## Tags -Currently, the `latest` tag is `v0.8.8`. +Currently, the `latest` tag is `v0.8.9`. For other available tags, please check out https://hub.docker.com/r/earthly/buildkitd/tags ## Quickstart diff --git a/docs/guides/importing.md b/docs/guides/importing.md index 9ef7300e..f1e48e22 100644 --- a/docs/guides/importing.md +++ b/docs/guides/importing.md @@ -96,7 +96,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.8+earthly` +* `github.com/earthly/earthly:v0.8.9+earthly` * `my-import+build` ## Artifact reference @@ -110,7 +110,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.8+earthly/earthly` +* `github.com/earthly/earthly:v0.8.9+earthly/earthly` * `my-import+build/my-artifact` ## Image reference @@ -131,7 +131,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.8+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.9+DOWNLOAD_DIND` * `my-import+COMPILE` For more information on functions, see the [Functions Guide](./functions.md). @@ -176,7 +176,7 @@ Another form of a Earthfile reference is the remote form. In this form, the reci |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.8` | `github.com/earthly/earthly:v0.8.8+build` | `github.com/earthly/earthly:v0.8.8+build/out.bin` | `github.com/earthly/earthly:v0.8.8+COMPILE` | +| `github.com/earthly/earthly:v0.8.9` | `github.com/earthly/earthly:v0.8.9+build` | `github.com/earthly/earthly:v0.8.9+build/out.bin` | `github.com/earthly/earthly:v0.8.9+COMPILE` | ### Import reference @@ -186,7 +186,7 @@ Finally, the last form of Earthfile referencing is an import reference. Import r |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.8` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.9` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/docs/guides/target-ref.md b/docs/guides/target-ref.md index feae3990..6d58ff59 100644 --- a/docs/guides/target-ref.md +++ b/docs/guides/target-ref.md @@ -20,7 +20,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.8+earthly` +* `github.com/earthly/earthly:v0.8.9+earthly` ## Artifact reference @@ -33,7 +33,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.8+earthly/earthly` +* `github.com/earthly/earthly:v0.8.9+earthly/earthly` ## Image reference @@ -53,7 +53,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.8+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.9+DOWNLOAD_DIND` For more information on functions, see the [functions guide](./functions.md). @@ -93,7 +93,7 @@ Another form of a project reference is the remote form. In this form, the recipe |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.8` | `github.com/earthly/earthly:v0.8.8+build` | `github.com/earthly/earthly:v0.8.8+build/out.bin` | `github.com/earthly/earthly:v0.8.8+COMPILE` | +| `github.com/earthly/earthly:v0.8.9` | `github.com/earthly/earthly:v0.8.9+build` | `github.com/earthly/earthly:v0.8.9+build/out.bin` | `github.com/earthly/earthly:v0.8.9+COMPILE` | ### Import reference @@ -103,7 +103,7 @@ Finally, the last form of project referencing is an import reference. Import ref |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.8` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.9` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/release/README.md b/release/README.md index 49a1c953..0dcfbe6b 100644 --- a/release/README.md +++ b/release/README.md @@ -18,7 +18,7 @@ git checkout main && git pull ``` * Update the CHANGELOG.md with the corresponding release notes and open a PR - * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.8...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. + * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.9...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. * Make sure that main build is green for all platforms (check build status for the latest commit on GitHub). * Make sure the following build status are green: | Platform | Status | From 1629ab54dc20067891d94cb9fdab172627a17333 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 14:52:19 -0700 Subject: [PATCH 13/16] chore(deps): update dependency earthly/earthly to v0.8.10 (docs-0.8) (#4114) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [earthly/earthly](https://togithub.com/earthly/earthly) | patch | `v0.8.9` -> `v0.8.10` | | [earthly/earthly](https://togithub.com/earthly/earthly) | patch | `v0.8.9 -> `v0.8.10` | --- ### Release Notes
earthly/earthly (earthly/earthly) ### [`v0.8.10`](https://togithub.com/earthly/earthly/blob/HEAD/CHANGELOG.md#v0810---2024-05-14) [Compare Source](https://togithub.com/earthly/earthly/compare/v0.8.9...v0.8.10) ##### Added - New Github Actions Workflow commands integration `--github-annotations` flag or GITHUB_ACTIONS=true env. [#​2189](https://togithub.com/earthly/earthly/issues/2189) - Added a new `--oidc` flag to `RUN` command which allows authentication to AWS via OIDC. Enable with the `VERSION --run-with-aws-oidc` feature flag. [#​3804](https://togithub.com/earthly/earthly/issues/3804) - Experimental `WITH DOCKER --cache-id=` feature, which will cache the contents of the docker data root, resulting in faster `--load` and `--pull` execution. Enabled with the `VERSION --docker-cache` feature flag. [#​3399](https://togithub.com/earthly/earthly/issues/3399) - New `SAVE IMAGE --without-earthly-labels` feature, which will prevent any `dev.earthly.*` labels from being saved to the image. Enable with the `VERSION --allow-without-earthly-labels` feature flag. Thanks to [@​3manuek](https://togithub.com/3manuek) for the contribution! ##### Fixed - `WITH DOCKER` load time calculation. [#​3485](https://togithub.com/earthly/earthly/issues/3485) - The earthly cli was not correctly setting the exit status on failures when executing a `RUN` on a satellite which reached the max execution time limit. - Self-hosted satellite connection issue. ##### Changed - Earthly will now use source link format when displaying errors, e.g. `::` rather than ` line :`. - Improved error messages for cases where a shell is required to run a command such as `IF`, `FOR`, etc. - Earthly will now show a warning when earthly anonymously connects to a registry (which increases the chance of being rate-limited). ##### Additional Info - This release includes changes to buildkit
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../part-8a-using-earthly-in-your-current-ci.md | 4 ++-- docs/ci-integration/build-an-earthly-ci-image.md | 4 ++-- .../guides/bitbucket-pipelines-integration.md | 2 +- docs/ci-integration/guides/circle-integration.md | 2 +- docs/ci-integration/guides/codebuild-integration.md | 2 +- docs/ci-integration/guides/gh-actions-integration.md | 2 +- docs/ci-integration/guides/gitlab-integration.md | 2 +- docs/ci-integration/guides/google-cloud-build.md | 4 ++-- docs/ci-integration/guides/woodpecker-integration.md | 2 +- docs/ci-integration/overview.md | 2 +- docs/ci-integration/use-earthly-ci-image.md | 6 +++--- docs/cloud/satellites/gha-runners.md | 4 ++-- docs/cloud/satellites/self-hosted.md | 8 ++++---- docs/docker-images/all-in-one.md | 12 ++++++------ docs/docker-images/buildkit-standalone.md | 2 +- docs/guides/importing.md | 10 +++++----- docs/guides/target-ref.md | 10 +++++----- release/README.md | 2 +- 18 files changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/basics/part-8a-using-earthly-in-your-current-ci.md b/docs/basics/part-8a-using-earthly-in-your-current-ci.md index ea8b0bae..430bbc54 100644 --- a/docs/basics/part-8a-using-earthly-in-your-current-ci.md +++ b/docs/basics/part-8a-using-earthly-in-your-current-ci.md @@ -41,7 +41,7 @@ jobs: steps: - uses: earthly/actions/setup-earthly@v1 with: - version: v0.8.9 + version: v0.8.10 - uses: actions/checkout@v2 - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" @@ -51,7 +51,7 @@ jobs: Here is an explanation of the steps above: -* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` +* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` * The command `docker login` performs a login to the DockerHub registry. This is required, to prevent rate-limiting issues when using popular base images. * The command `earthly --org ... --sat ... --ci --push +build` executes the build. The `--ci` flag is used here, in order to force the use of `--strict` mode. In `--strict` mode, Earthly prevents the use of features that make the build less repeatable and also disables local outputs -- because artifacts and images resulting from the build are not needed within the CI environment. Any outputs should be pushed via `RUN --push` or `SAVE IMAGE --push` commands. The flags `--org` and `--sat` allow you to select the organization and satellite to use for the build. If no satellite is specified, the build will be executed in the CI environment itself, with limited caching. diff --git a/docs/ci-integration/build-an-earthly-ci-image.md b/docs/ci-integration/build-an-earthly-ci-image.md index 3e8f5b53..1c26ad0a 100644 --- a/docs/ci-integration/build-an-earthly-ci-image.md +++ b/docs/ci-integration/build-an-earthly-ci-image.md @@ -18,7 +18,7 @@ This guide will cover both approaches to constructing your image. This is the recommended approach when adopting Earthly into your containerized CI. Start by basing your custom image on ours: ```docker -FROM earthly/earthly:v0.8.9 +FROM earthly/earthly:v0.8.10 RUN ... # Add your agent, certificates, tools... ``` @@ -50,7 +50,7 @@ In this setup, Earthly will be allowed to manage an instance of its `earthly/bui To enable this, simply follow the installation instructions within your Dockerfile/Earthfile as you would on any other host. An example of installing this can be found below. ```docker -RUN wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +RUN wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/guides/bitbucket-pipelines-integration.md b/docs/ci-integration/guides/bitbucket-pipelines-integration.md index b7de2feb..332adf3f 100644 --- a/docs/ci-integration/guides/bitbucket-pipelines-integration.md +++ b/docs/ci-integration/guides/bitbucket-pipelines-integration.md @@ -7,7 +7,7 @@ You can however, run Earthly builds on Bitbucket pipelines via [remote runners]( ```yml # ./bitbucket-pipelines.yml -image: earthly/earthly:v0.8.9 +image: earthly/earthly:v0.8.10 pipelines: default: diff --git a/docs/ci-integration/guides/circle-integration.md b/docs/ci-integration/guides/circle-integration.md index 7712e71e..70a14a45 100644 --- a/docs/ci-integration/guides/circle-integration.md +++ b/docs/ci-integration/guides/circle-integration.md @@ -14,7 +14,7 @@ jobs: steps: - checkout - run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/codebuild-integration.md b/docs/ci-integration/guides/codebuild-integration.md index 4a96ec97..6c279a72 100644 --- a/docs/ci-integration/guides/codebuild-integration.md +++ b/docs/ci-integration/guides/codebuild-integration.md @@ -18,7 +18,7 @@ version: 0.2 phases: install: commands: - - wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly + - wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly pre_build: commands: - echo Logging into Docker diff --git a/docs/ci-integration/guides/gh-actions-integration.md b/docs/ci-integration/guides/gh-actions-integration.md index 97469fc9..b0d56ed8 100644 --- a/docs/ci-integration/guides/gh-actions-integration.md +++ b/docs/ci-integration/guides/gh-actions-integration.md @@ -65,7 +65,7 @@ jobs: - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - name: Download latest earthly - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - name: Run build run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/gitlab-integration.md b/docs/ci-integration/guides/gitlab-integration.md index 2d1e3938..982a69ca 100644 --- a/docs/ci-integration/guides/gitlab-integration.md +++ b/docs/ci-integration/guides/gitlab-integration.md @@ -15,7 +15,7 @@ variables: FORCE_COLOR: 1 EARTHLY_EXEC_CMD: "/bin/sh" -image: earthly/earthly:v0.8.9 +image: earthly/earthly:v0.8.10 before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY diff --git a/docs/ci-integration/guides/google-cloud-build.md b/docs/ci-integration/guides/google-cloud-build.md index d5b83f62..9bbeb6e8 100644 --- a/docs/ci-integration/guides/google-cloud-build.md +++ b/docs/ci-integration/guides/google-cloud-build.md @@ -106,7 +106,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'build' - name: 'earthly/earthly:v0.8.9' + name: 'earthly/earthly:v0.8.10' args: - --ci - --push @@ -117,7 +117,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'gcp-test' - name: 'earthly/earthly:v0.8.9' + name: 'earthly/earthly:v0.8.10' args: - +gcp-cloudbuild secretEnv: diff --git a/docs/ci-integration/guides/woodpecker-integration.md b/docs/ci-integration/guides/woodpecker-integration.md index 973ddb16..b758d52e 100644 --- a/docs/ci-integration/guides/woodpecker-integration.md +++ b/docs/ci-integration/guides/woodpecker-integration.md @@ -14,7 +14,7 @@ The project needs to be [trusted](https://woodpecker-ci.org/docs/usage/project-s #.woodpecker.yml pipeline: earthly: - image: earthly/earthly:v0.8.9 + image: earthly/earthly:v0.8.10 volumes: - /var/run/docker.sock:/var/run/docker.sock environment: diff --git a/docs/ci-integration/overview.md b/docs/ci-integration/overview.md index 625528bc..bc38756d 100644 --- a/docs/ci-integration/overview.md +++ b/docs/ci-integration/overview.md @@ -27,7 +27,7 @@ Once you have ensured that the dependencies are available, you'll need to instal This is the simplest method for adding `earthly` to your CI. It will work best on dedicated computers, or in scripted/auto-provisioned build environments. You can pin it to a specific version like so: ```shell -wget https://github.com/earthly/earthly/releases/download/v0.8.9/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/use-earthly-ci-image.md b/docs/ci-integration/use-earthly-ci-image.md index 2635cb81..6fe7a004 100644 --- a/docs/ci-integration/use-earthly-ci-image.md +++ b/docs/ci-integration/use-earthly-ci-image.md @@ -36,19 +36,19 @@ For more details on using remote execution, [see our guide on remote BuildKit](. The image expects the source code of the application you are building in the current working directory (by default `/workspace`). You will need to copy or mount the necessary files to that directory prior to invoking the entrypoint. ```bash -docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.9 +my-target +docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.10 +my-target ``` Or, if you would like to use an alternative directory: ```bash -docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.9 +my-target +docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.10 +my-target ``` Alternatively, you may rely on Earthly to perform a git clone, by using the remote target reference format. For example: ```bash -docker run --privileged --rm earthly/earthly:v0.8.9 github.com/foo/bar:my-branch+target +docker run --privileged --rm earthly/earthly:v0.8.10 github.com/foo/bar:my-branch+target ``` #### `NO_BUILDKIT` Environment Variable diff --git a/docs/cloud/satellites/gha-runners.md b/docs/cloud/satellites/gha-runners.md index 9d60ea4b..ba99d30e 100644 --- a/docs/cloud/satellites/gha-runners.md +++ b/docs/cloud/satellites/gha-runners.md @@ -102,11 +102,11 @@ docker run --privileged \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ -e RUNNER_GHA_ENABLED=true \ - earthly/satellite:v0.8.9 + earthly/satellite:v0.8.10 ``` {% hint style='info' %} ##### Required version -Use at least `earthly/satellite:v0.8.9` +Use at least `earthly/satellite:v0.8.10 {% endhint %} #### Logs diff --git a/docs/cloud/satellites/self-hosted.md b/docs/cloud/satellites/self-hosted.md index 4122b401..e70fdf05 100644 --- a/docs/cloud/satellites/self-hosted.md +++ b/docs/cloud/satellites/self-hosted.md @@ -26,7 +26,7 @@ docker run --privileged \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ - earthly/satellite:v0.8.9 + earthly/satellite:v0.8.10 ``` The following environment variables are required: @@ -107,7 +107,7 @@ runcmd: -e EARTHLY_TOKEN=GuFna*****nve7e \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ - earthly/satellite:v0.8.9 + earthly/satellite:v0.8.10 ``` Note that the `SATELLITE_HOST` variable is unset in this example so that the host is auto-discovered by the satellite when it starts. This should result in the instance’s private DNS being used as the host. @@ -134,7 +134,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: earthly/satellite:v0.8.9 + image: earthly/satellite:v0.8.10 securityContext: privileged: true ports: @@ -174,7 +174,7 @@ Here’s an example of how to attach the volume using the Docker command line: ``` docker run -v earthly-cache:/tmp/earthly:rw \ ... - earthly/satellite:v0.8.9 + earthly/satellite:v0.8.10 ``` ## Additional Environment Variables diff --git a/docs/docker-images/all-in-one.md b/docs/docker-images/all-in-one.md index ed328776..d35a827c 100644 --- a/docs/docker-images/all-in-one.md +++ b/docs/docker-images/all-in-one.md @@ -2,7 +2,7 @@ This image contains `earthly`, `buildkit`, and some extra configuration to enabl ## Tags -Currently, the `latest` tag is `v0.8.9`. +Currently, the `latest` tag is `v0.8.10`. For other available tags, please check out https://hub.docker.com/r/earthly/earthly/tags ## Quickstart @@ -14,7 +14,7 @@ Want to get started? Here are a couple sample `docker run` commands that cover t This example shows how to use the Earthly container in conjunction with a Docker socket that Earthly can use to start up the BuildKit daemon. ```bash -docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.9 +for-linux +docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.10 +for-linux ``` Here's a quick breakdown: @@ -30,7 +30,7 @@ Here's a quick breakdown: This example shows how the Earthly image can start a BuildKit daemon within the same container. A Docker socket is not needed in this case, however the container will need to be run with the `--privileged` flag. ```bash -docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.9 +for-linux +docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.10 +for-linux ``` Here's a quick breakdown: @@ -46,7 +46,7 @@ Here's a quick breakdown: This example utilizes an [Earthly Satellite](https://docs.earthly.dev/earthly-cloud/satellites) to perform builds. The code to be built is downloaded directly from GitHub. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.9 --ci --org --sat github.com/earthly/earthly+for-linux +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.10 --ci --org --sat github.com/earthly/earthly+for-linux ``` Here's what this does: @@ -61,11 +61,11 @@ Here's what this does: This example shows how to use the Earthly container to run non-build commands. This is useful for running commands like `earthly account`, or `earthly secret`. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.9 account list-tokens +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.10 account list-tokens ``` ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.9 secret get foo +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.10 secret get foo ``` ## Using This Image diff --git a/docs/docker-images/buildkit-standalone.md b/docs/docker-images/buildkit-standalone.md index c1fbccb9..0b309b09 100644 --- a/docs/docker-images/buildkit-standalone.md +++ b/docs/docker-images/buildkit-standalone.md @@ -4,7 +4,7 @@ This image contains `buildkit` with some Earthly-specific setup. This is what Ea ## Tags -Currently, the `latest` tag is `v0.8.9`. +Currently, the `latest` tag is `v0.8.10`. For other available tags, please check out https://hub.docker.com/r/earthly/buildkitd/tags ## Quickstart diff --git a/docs/guides/importing.md b/docs/guides/importing.md index f1e48e22..1dde139f 100644 --- a/docs/guides/importing.md +++ b/docs/guides/importing.md @@ -96,7 +96,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.9+earthly` +* `github.com/earthly/earthly:v0.8.10+earthly` * `my-import+build` ## Artifact reference @@ -110,7 +110,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.9+earthly/earthly` +* `github.com/earthly/earthly:v0.8.10+earthly/earthly` * `my-import+build/my-artifact` ## Image reference @@ -131,7 +131,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.9+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.10+DOWNLOAD_DIND` * `my-import+COMPILE` For more information on functions, see the [Functions Guide](./functions.md). @@ -176,7 +176,7 @@ Another form of a Earthfile reference is the remote form. In this form, the reci |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.9` | `github.com/earthly/earthly:v0.8.9+build` | `github.com/earthly/earthly:v0.8.9+build/out.bin` | `github.com/earthly/earthly:v0.8.9+COMPILE` | +| `github.com/earthly/earthly:v0.8.10` | `github.com/earthly/earthly:v0.8.10+build` | `github.com/earthly/earthly:v0.8.10+build/out.bin` | `github.com/earthly/earthly:v0.8.10+COMPILE` | ### Import reference @@ -186,7 +186,7 @@ Finally, the last form of Earthfile referencing is an import reference. Import r |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.9` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.10` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/docs/guides/target-ref.md b/docs/guides/target-ref.md index 6d58ff59..809f1a30 100644 --- a/docs/guides/target-ref.md +++ b/docs/guides/target-ref.md @@ -20,7 +20,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.9+earthly` +* `github.com/earthly/earthly:v0.8.10+earthly` ## Artifact reference @@ -33,7 +33,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.9+earthly/earthly` +* `github.com/earthly/earthly:v0.8.10+earthly/earthly` ## Image reference @@ -53,7 +53,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.9+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.10+DOWNLOAD_DIND` For more information on functions, see the [functions guide](./functions.md). @@ -93,7 +93,7 @@ Another form of a project reference is the remote form. In this form, the recipe |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.9` | `github.com/earthly/earthly:v0.8.9+build` | `github.com/earthly/earthly:v0.8.9+build/out.bin` | `github.com/earthly/earthly:v0.8.9+COMPILE` | +| `github.com/earthly/earthly:v0.8.10` | `github.com/earthly/earthly:v0.8.10+build` | `github.com/earthly/earthly:v0.8.10+build/out.bin` | `github.com/earthly/earthly:v0.8.10+COMPILE` | ### Import reference @@ -103,7 +103,7 @@ Finally, the last form of project referencing is an import reference. Import ref |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.9` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.10` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/release/README.md b/release/README.md index 6a76faf6..f7693e52 100644 --- a/release/README.md +++ b/release/README.md @@ -18,7 +18,7 @@ git checkout main && git pull ``` * Update the CHANGELOG.md with the corresponding release notes and open a PR - * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.9...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. + * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.10...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. * Make sure that main build is green for all platforms (check build status for the latest commit on GitHub). * Make sure the following build status are green: | Platform | Status | From 8cbaa2910d6c71df636c34a2b66e48f92c6a251a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 16 May 2024 13:52:35 -0700 Subject: [PATCH 14/16] chore(deps): update dependency earthly/earthly to v0.8.11 (docs-0.8) (#4125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [earthly/earthly](https://togithub.com/earthly/earthly) | patch | `v0.8.10` -> `v0.8.11` | --- ### Release Notes
earthly/earthly (earthly/earthly) ### [`v0.8.11`](https://togithub.com/earthly/earthly/blob/HEAD/CHANGELOG.md#v0811---2024-05-16) [Compare Source](https://togithub.com/earthly/earthly/compare/v0.8.10...v0.8.11) ##### Added - Support for using HTTP(S) proxies when connecting to satellites. ##### Fixed - Backwards compatability issue where `WITH DOCKER` would fail with `EARTHLY_DOCKERD_CACHE_DATA: parameter not set` when using an older version of the earthly in combination with a satellite running v0.8.10. ##### Additional Info - This release includes changes to buildkit
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../part-8a-using-earthly-in-your-current-ci.md | 4 ++-- docs/ci-integration/build-an-earthly-ci-image.md | 4 ++-- .../guides/bitbucket-pipelines-integration.md | 2 +- docs/ci-integration/guides/circle-integration.md | 2 +- docs/ci-integration/guides/codebuild-integration.md | 2 +- docs/ci-integration/guides/gh-actions-integration.md | 2 +- docs/ci-integration/guides/gitlab-integration.md | 2 +- docs/ci-integration/guides/google-cloud-build.md | 4 ++-- docs/ci-integration/guides/woodpecker-integration.md | 2 +- docs/ci-integration/overview.md | 2 +- docs/ci-integration/use-earthly-ci-image.md | 6 +++--- docs/cloud/satellites/gha-runners.md | 4 ++-- docs/cloud/satellites/self-hosted.md | 8 ++++---- docs/docker-images/all-in-one.md | 12 ++++++------ docs/docker-images/buildkit-standalone.md | 2 +- docs/guides/importing.md | 10 +++++----- docs/guides/target-ref.md | 10 +++++----- release/README.md | 2 +- 18 files changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/basics/part-8a-using-earthly-in-your-current-ci.md b/docs/basics/part-8a-using-earthly-in-your-current-ci.md index 430bbc54..0328518a 100644 --- a/docs/basics/part-8a-using-earthly-in-your-current-ci.md +++ b/docs/basics/part-8a-using-earthly-in-your-current-ci.md @@ -41,7 +41,7 @@ jobs: steps: - uses: earthly/actions/setup-earthly@v1 with: - version: v0.8.10 + version: v0.8.11 - uses: actions/checkout@v2 - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" @@ -51,7 +51,7 @@ jobs: Here is an explanation of the steps above: -* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` +* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` * The command `docker login` performs a login to the DockerHub registry. This is required, to prevent rate-limiting issues when using popular base images. * The command `earthly --org ... --sat ... --ci --push +build` executes the build. The `--ci` flag is used here, in order to force the use of `--strict` mode. In `--strict` mode, Earthly prevents the use of features that make the build less repeatable and also disables local outputs -- because artifacts and images resulting from the build are not needed within the CI environment. Any outputs should be pushed via `RUN --push` or `SAVE IMAGE --push` commands. The flags `--org` and `--sat` allow you to select the organization and satellite to use for the build. If no satellite is specified, the build will be executed in the CI environment itself, with limited caching. diff --git a/docs/ci-integration/build-an-earthly-ci-image.md b/docs/ci-integration/build-an-earthly-ci-image.md index 1c26ad0a..a92a6d4b 100644 --- a/docs/ci-integration/build-an-earthly-ci-image.md +++ b/docs/ci-integration/build-an-earthly-ci-image.md @@ -18,7 +18,7 @@ This guide will cover both approaches to constructing your image. This is the recommended approach when adopting Earthly into your containerized CI. Start by basing your custom image on ours: ```docker -FROM earthly/earthly:v0.8.10 +FROM earthly/earthly:v0.8.11 RUN ... # Add your agent, certificates, tools... ``` @@ -50,7 +50,7 @@ In this setup, Earthly will be allowed to manage an instance of its `earthly/bui To enable this, simply follow the installation instructions within your Dockerfile/Earthfile as you would on any other host. An example of installing this can be found below. ```docker -RUN wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +RUN wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/guides/bitbucket-pipelines-integration.md b/docs/ci-integration/guides/bitbucket-pipelines-integration.md index 332adf3f..b29e5d4b 100644 --- a/docs/ci-integration/guides/bitbucket-pipelines-integration.md +++ b/docs/ci-integration/guides/bitbucket-pipelines-integration.md @@ -7,7 +7,7 @@ You can however, run Earthly builds on Bitbucket pipelines via [remote runners]( ```yml # ./bitbucket-pipelines.yml -image: earthly/earthly:v0.8.10 +image: earthly/earthly:v0.8.11 pipelines: default: diff --git a/docs/ci-integration/guides/circle-integration.md b/docs/ci-integration/guides/circle-integration.md index 70a14a45..c746df4f 100644 --- a/docs/ci-integration/guides/circle-integration.md +++ b/docs/ci-integration/guides/circle-integration.md @@ -14,7 +14,7 @@ jobs: steps: - checkout - run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/codebuild-integration.md b/docs/ci-integration/guides/codebuild-integration.md index 6c279a72..1beacf5c 100644 --- a/docs/ci-integration/guides/codebuild-integration.md +++ b/docs/ci-integration/guides/codebuild-integration.md @@ -18,7 +18,7 @@ version: 0.2 phases: install: commands: - - wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly + - wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly pre_build: commands: - echo Logging into Docker diff --git a/docs/ci-integration/guides/gh-actions-integration.md b/docs/ci-integration/guides/gh-actions-integration.md index b0d56ed8..6d02489e 100644 --- a/docs/ci-integration/guides/gh-actions-integration.md +++ b/docs/ci-integration/guides/gh-actions-integration.md @@ -65,7 +65,7 @@ jobs: - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - name: Download latest earthly - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - name: Run build run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/gitlab-integration.md b/docs/ci-integration/guides/gitlab-integration.md index 982a69ca..06eda173 100644 --- a/docs/ci-integration/guides/gitlab-integration.md +++ b/docs/ci-integration/guides/gitlab-integration.md @@ -15,7 +15,7 @@ variables: FORCE_COLOR: 1 EARTHLY_EXEC_CMD: "/bin/sh" -image: earthly/earthly:v0.8.10 +image: earthly/earthly:v0.8.11 before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY diff --git a/docs/ci-integration/guides/google-cloud-build.md b/docs/ci-integration/guides/google-cloud-build.md index 9bbeb6e8..d72aab56 100644 --- a/docs/ci-integration/guides/google-cloud-build.md +++ b/docs/ci-integration/guides/google-cloud-build.md @@ -106,7 +106,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'build' - name: 'earthly/earthly:v0.8.10' + name: 'earthly/earthly:v0.8.11' args: - --ci - --push @@ -117,7 +117,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'gcp-test' - name: 'earthly/earthly:v0.8.10' + name: 'earthly/earthly:v0.8.11' args: - +gcp-cloudbuild secretEnv: diff --git a/docs/ci-integration/guides/woodpecker-integration.md b/docs/ci-integration/guides/woodpecker-integration.md index b758d52e..51ab2436 100644 --- a/docs/ci-integration/guides/woodpecker-integration.md +++ b/docs/ci-integration/guides/woodpecker-integration.md @@ -14,7 +14,7 @@ The project needs to be [trusted](https://woodpecker-ci.org/docs/usage/project-s #.woodpecker.yml pipeline: earthly: - image: earthly/earthly:v0.8.10 + image: earthly/earthly:v0.8.11 volumes: - /var/run/docker.sock:/var/run/docker.sock environment: diff --git a/docs/ci-integration/overview.md b/docs/ci-integration/overview.md index bc38756d..13d997ee 100644 --- a/docs/ci-integration/overview.md +++ b/docs/ci-integration/overview.md @@ -27,7 +27,7 @@ Once you have ensured that the dependencies are available, you'll need to instal This is the simplest method for adding `earthly` to your CI. It will work best on dedicated computers, or in scripted/auto-provisioned build environments. You can pin it to a specific version like so: ```shell -wget https://github.com/earthly/earthly/releases/download/v0.8.10/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/use-earthly-ci-image.md b/docs/ci-integration/use-earthly-ci-image.md index 6fe7a004..f99b44fa 100644 --- a/docs/ci-integration/use-earthly-ci-image.md +++ b/docs/ci-integration/use-earthly-ci-image.md @@ -36,19 +36,19 @@ For more details on using remote execution, [see our guide on remote BuildKit](. The image expects the source code of the application you are building in the current working directory (by default `/workspace`). You will need to copy or mount the necessary files to that directory prior to invoking the entrypoint. ```bash -docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.10 +my-target +docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.11 +my-target ``` Or, if you would like to use an alternative directory: ```bash -docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.10 +my-target +docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.11 +my-target ``` Alternatively, you may rely on Earthly to perform a git clone, by using the remote target reference format. For example: ```bash -docker run --privileged --rm earthly/earthly:v0.8.10 github.com/foo/bar:my-branch+target +docker run --privileged --rm earthly/earthly:v0.8.11 github.com/foo/bar:my-branch+target ``` #### `NO_BUILDKIT` Environment Variable diff --git a/docs/cloud/satellites/gha-runners.md b/docs/cloud/satellites/gha-runners.md index ba99d30e..65a32c3a 100644 --- a/docs/cloud/satellites/gha-runners.md +++ b/docs/cloud/satellites/gha-runners.md @@ -102,11 +102,11 @@ docker run --privileged \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ -e RUNNER_GHA_ENABLED=true \ - earthly/satellite:v0.8.10 + earthly/satellite:v0.8.11 ``` {% hint style='info' %} ##### Required version -Use at least `earthly/satellite:v0.8.10 +Use at least `earthly/satellite:v0.8.11 {% endhint %} #### Logs diff --git a/docs/cloud/satellites/self-hosted.md b/docs/cloud/satellites/self-hosted.md index e70fdf05..53771aa5 100644 --- a/docs/cloud/satellites/self-hosted.md +++ b/docs/cloud/satellites/self-hosted.md @@ -26,7 +26,7 @@ docker run --privileged \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ - earthly/satellite:v0.8.10 + earthly/satellite:v0.8.11 ``` The following environment variables are required: @@ -107,7 +107,7 @@ runcmd: -e EARTHLY_TOKEN=GuFna*****nve7e \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ - earthly/satellite:v0.8.10 + earthly/satellite:v0.8.11 ``` Note that the `SATELLITE_HOST` variable is unset in this example so that the host is auto-discovered by the satellite when it starts. This should result in the instance’s private DNS being used as the host. @@ -134,7 +134,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: earthly/satellite:v0.8.10 + image: earthly/satellite:v0.8.11 securityContext: privileged: true ports: @@ -174,7 +174,7 @@ Here’s an example of how to attach the volume using the Docker command line: ``` docker run -v earthly-cache:/tmp/earthly:rw \ ... - earthly/satellite:v0.8.10 + earthly/satellite:v0.8.11 ``` ## Additional Environment Variables diff --git a/docs/docker-images/all-in-one.md b/docs/docker-images/all-in-one.md index d35a827c..c0356328 100644 --- a/docs/docker-images/all-in-one.md +++ b/docs/docker-images/all-in-one.md @@ -2,7 +2,7 @@ This image contains `earthly`, `buildkit`, and some extra configuration to enabl ## Tags -Currently, the `latest` tag is `v0.8.10`. +Currently, the `latest` tag is `v0.8.11`. For other available tags, please check out https://hub.docker.com/r/earthly/earthly/tags ## Quickstart @@ -14,7 +14,7 @@ Want to get started? Here are a couple sample `docker run` commands that cover t This example shows how to use the Earthly container in conjunction with a Docker socket that Earthly can use to start up the BuildKit daemon. ```bash -docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.10 +for-linux +docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.11 +for-linux ``` Here's a quick breakdown: @@ -30,7 +30,7 @@ Here's a quick breakdown: This example shows how the Earthly image can start a BuildKit daemon within the same container. A Docker socket is not needed in this case, however the container will need to be run with the `--privileged` flag. ```bash -docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.10 +for-linux +docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.11 +for-linux ``` Here's a quick breakdown: @@ -46,7 +46,7 @@ Here's a quick breakdown: This example utilizes an [Earthly Satellite](https://docs.earthly.dev/earthly-cloud/satellites) to perform builds. The code to be built is downloaded directly from GitHub. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.10 --ci --org --sat github.com/earthly/earthly+for-linux +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.11 --ci --org --sat github.com/earthly/earthly+for-linux ``` Here's what this does: @@ -61,11 +61,11 @@ Here's what this does: This example shows how to use the Earthly container to run non-build commands. This is useful for running commands like `earthly account`, or `earthly secret`. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.10 account list-tokens +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.11 account list-tokens ``` ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.10 secret get foo +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.11 secret get foo ``` ## Using This Image diff --git a/docs/docker-images/buildkit-standalone.md b/docs/docker-images/buildkit-standalone.md index 0b309b09..bb98ca38 100644 --- a/docs/docker-images/buildkit-standalone.md +++ b/docs/docker-images/buildkit-standalone.md @@ -4,7 +4,7 @@ This image contains `buildkit` with some Earthly-specific setup. This is what Ea ## Tags -Currently, the `latest` tag is `v0.8.10`. +Currently, the `latest` tag is `v0.8.11`. For other available tags, please check out https://hub.docker.com/r/earthly/buildkitd/tags ## Quickstart diff --git a/docs/guides/importing.md b/docs/guides/importing.md index 1dde139f..8d1ad818 100644 --- a/docs/guides/importing.md +++ b/docs/guides/importing.md @@ -96,7 +96,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.10+earthly` +* `github.com/earthly/earthly:v0.8.11+earthly` * `my-import+build` ## Artifact reference @@ -110,7 +110,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.10+earthly/earthly` +* `github.com/earthly/earthly:v0.8.11+earthly/earthly` * `my-import+build/my-artifact` ## Image reference @@ -131,7 +131,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.10+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.11+DOWNLOAD_DIND` * `my-import+COMPILE` For more information on functions, see the [Functions Guide](./functions.md). @@ -176,7 +176,7 @@ Another form of a Earthfile reference is the remote form. In this form, the reci |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.10` | `github.com/earthly/earthly:v0.8.10+build` | `github.com/earthly/earthly:v0.8.10+build/out.bin` | `github.com/earthly/earthly:v0.8.10+COMPILE` | +| `github.com/earthly/earthly:v0.8.11` | `github.com/earthly/earthly:v0.8.11+build` | `github.com/earthly/earthly:v0.8.11+build/out.bin` | `github.com/earthly/earthly:v0.8.11+COMPILE` | ### Import reference @@ -186,7 +186,7 @@ Finally, the last form of Earthfile referencing is an import reference. Import r |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.10` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.11` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/docs/guides/target-ref.md b/docs/guides/target-ref.md index 809f1a30..eac37f4a 100644 --- a/docs/guides/target-ref.md +++ b/docs/guides/target-ref.md @@ -20,7 +20,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.10+earthly` +* `github.com/earthly/earthly:v0.8.11+earthly` ## Artifact reference @@ -33,7 +33,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.10+earthly/earthly` +* `github.com/earthly/earthly:v0.8.11+earthly/earthly` ## Image reference @@ -53,7 +53,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.10+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.11+DOWNLOAD_DIND` For more information on functions, see the [functions guide](./functions.md). @@ -93,7 +93,7 @@ Another form of a project reference is the remote form. In this form, the recipe |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.10` | `github.com/earthly/earthly:v0.8.10+build` | `github.com/earthly/earthly:v0.8.10+build/out.bin` | `github.com/earthly/earthly:v0.8.10+COMPILE` | +| `github.com/earthly/earthly:v0.8.11` | `github.com/earthly/earthly:v0.8.11+build` | `github.com/earthly/earthly:v0.8.11+build/out.bin` | `github.com/earthly/earthly:v0.8.11+COMPILE` | ### Import reference @@ -103,7 +103,7 @@ Finally, the last form of project referencing is an import reference. Import ref |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.10` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.11` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/release/README.md b/release/README.md index f7693e52..d4acd0ba 100644 --- a/release/README.md +++ b/release/README.md @@ -18,7 +18,7 @@ git checkout main && git pull ``` * Update the CHANGELOG.md with the corresponding release notes and open a PR - * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.10...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. + * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.11...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. * Make sure that main build is green for all platforms (check build status for the latest commit on GitHub). * Make sure the following build status are green: | Platform | Status | From 024aa914b2df32c58a08feccb96cea227896e648 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 08:36:14 -0700 Subject: [PATCH 15/16] chore(deps): update dependency earthly/earthly to v0.8.12 (docs-0.8) (#4151) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [earthly/earthly](https://togithub.com/earthly/earthly) | patch | `v0.8.11` -> `v0.8.12` | --- ### Release Notes
earthly/earthly (earthly/earthly) ### [`v0.8.12`](https://togithub.com/earthly/earthly/blob/HEAD/CHANGELOG.md#v0812---2024-05-23) [Compare Source](https://togithub.com/earthly/earthly/compare/v0.8.11...v0.8.12) ##### Added - An experimental modification of the buildkit scheduler, which attempts to solve the `inconsistent graph state` error, which can be enabled locally with `earthly --ticktock ...`. ##### Changed - The BYOC (bring your own cloud) commands have been updated to reflect server-side API changes. ##### Fixed - The `--buildkit-container-name` flag was incorrectly being ignored when `--no-buildkit-update` was set. ##### Additional Info - This release includes changes to buildkit
--- ### Configuration πŸ“… **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. β™» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. πŸ”• **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/earthly/earthly). Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../part-8a-using-earthly-in-your-current-ci.md | 4 ++-- docs/ci-integration/build-an-earthly-ci-image.md | 4 ++-- .../guides/bitbucket-pipelines-integration.md | 2 +- docs/ci-integration/guides/circle-integration.md | 2 +- docs/ci-integration/guides/codebuild-integration.md | 2 +- docs/ci-integration/guides/gh-actions-integration.md | 2 +- docs/ci-integration/guides/gitlab-integration.md | 2 +- docs/ci-integration/guides/google-cloud-build.md | 4 ++-- docs/ci-integration/guides/woodpecker-integration.md | 2 +- docs/ci-integration/overview.md | 2 +- docs/ci-integration/use-earthly-ci-image.md | 6 +++--- docs/cloud/satellites/gha-runners.md | 4 ++-- docs/cloud/satellites/self-hosted.md | 8 ++++---- docs/docker-images/all-in-one.md | 12 ++++++------ docs/docker-images/buildkit-standalone.md | 2 +- docs/guides/importing.md | 10 +++++----- docs/guides/target-ref.md | 10 +++++----- release/README.md | 2 +- 18 files changed, 40 insertions(+), 40 deletions(-) diff --git a/docs/basics/part-8a-using-earthly-in-your-current-ci.md b/docs/basics/part-8a-using-earthly-in-your-current-ci.md index 0328518a..83dee1e1 100644 --- a/docs/basics/part-8a-using-earthly-in-your-current-ci.md +++ b/docs/basics/part-8a-using-earthly-in-your-current-ci.md @@ -41,7 +41,7 @@ jobs: steps: - uses: earthly/actions/setup-earthly@v1 with: - version: v0.8.11 + version: v0.8.12 - uses: actions/checkout@v2 - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" @@ -51,7 +51,7 @@ jobs: Here is an explanation of the steps above: -* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` +* The action `earthly/actions/setup-earthly@v1` downloads and installs Earthly. Running this action is similar to running the Earthly installation one-liner `sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.12/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'` * The command `docker login` performs a login to the DockerHub registry. This is required, to prevent rate-limiting issues when using popular base images. * The command `earthly --org ... --sat ... --ci --push +build` executes the build. The `--ci` flag is used here, in order to force the use of `--strict` mode. In `--strict` mode, Earthly prevents the use of features that make the build less repeatable and also disables local outputs -- because artifacts and images resulting from the build are not needed within the CI environment. Any outputs should be pushed via `RUN --push` or `SAVE IMAGE --push` commands. The flags `--org` and `--sat` allow you to select the organization and satellite to use for the build. If no satellite is specified, the build will be executed in the CI environment itself, with limited caching. diff --git a/docs/ci-integration/build-an-earthly-ci-image.md b/docs/ci-integration/build-an-earthly-ci-image.md index a92a6d4b..c68606dd 100644 --- a/docs/ci-integration/build-an-earthly-ci-image.md +++ b/docs/ci-integration/build-an-earthly-ci-image.md @@ -18,7 +18,7 @@ This guide will cover both approaches to constructing your image. This is the recommended approach when adopting Earthly into your containerized CI. Start by basing your custom image on ours: ```docker -FROM earthly/earthly:v0.8.11 +FROM earthly/earthly:v0.8.12 RUN ... # Add your agent, certificates, tools... ``` @@ -50,7 +50,7 @@ In this setup, Earthly will be allowed to manage an instance of its `earthly/bui To enable this, simply follow the installation instructions within your Dockerfile/Earthfile as you would on any other host. An example of installing this can be found below. ```docker -RUN wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +RUN wget https://github.com/earthly/earthly/releases/download/v0.8.12/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/guides/bitbucket-pipelines-integration.md b/docs/ci-integration/guides/bitbucket-pipelines-integration.md index b29e5d4b..01c03c85 100644 --- a/docs/ci-integration/guides/bitbucket-pipelines-integration.md +++ b/docs/ci-integration/guides/bitbucket-pipelines-integration.md @@ -7,7 +7,7 @@ You can however, run Earthly builds on Bitbucket pipelines via [remote runners]( ```yml # ./bitbucket-pipelines.yml -image: earthly/earthly:v0.8.11 +image: earthly/earthly:v0.8.12 pipelines: default: diff --git a/docs/ci-integration/guides/circle-integration.md b/docs/ci-integration/guides/circle-integration.md index c746df4f..a4c48e7f 100644 --- a/docs/ci-integration/guides/circle-integration.md +++ b/docs/ci-integration/guides/circle-integration.md @@ -14,7 +14,7 @@ jobs: steps: - checkout - run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.12/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/codebuild-integration.md b/docs/ci-integration/guides/codebuild-integration.md index 1beacf5c..19b5f67e 100644 --- a/docs/ci-integration/guides/codebuild-integration.md +++ b/docs/ci-integration/guides/codebuild-integration.md @@ -18,7 +18,7 @@ version: 0.2 phases: install: commands: - - wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly + - wget https://github.com/earthly/earthly/releases/download/v0.8.12/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly pre_build: commands: - echo Logging into Docker diff --git a/docs/ci-integration/guides/gh-actions-integration.md b/docs/ci-integration/guides/gh-actions-integration.md index 6d02489e..24d74f53 100644 --- a/docs/ci-integration/guides/gh-actions-integration.md +++ b/docs/ci-integration/guides/gh-actions-integration.md @@ -65,7 +65,7 @@ jobs: - name: Docker Login run: docker login --username "$DOCKERHUB_USERNAME" --password "$DOCKERHUB_TOKEN" - name: Download latest earthly - run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" + run: "sudo /bin/sh -c 'wget https://github.com/earthly/earthly/releases/download/v0.8.12/earthly-linux-amd64 -O /usr/local/bin/earthly && chmod +x /usr/local/bin/earthly'" - name: Run build run: earthly --ci --push +build ``` diff --git a/docs/ci-integration/guides/gitlab-integration.md b/docs/ci-integration/guides/gitlab-integration.md index 06eda173..694149e1 100644 --- a/docs/ci-integration/guides/gitlab-integration.md +++ b/docs/ci-integration/guides/gitlab-integration.md @@ -15,7 +15,7 @@ variables: FORCE_COLOR: 1 EARTHLY_EXEC_CMD: "/bin/sh" -image: earthly/earthly:v0.8.11 +image: earthly/earthly:v0.8.12 before_script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY diff --git a/docs/ci-integration/guides/google-cloud-build.md b/docs/ci-integration/guides/google-cloud-build.md index d72aab56..64a4c2e1 100644 --- a/docs/ci-integration/guides/google-cloud-build.md +++ b/docs/ci-integration/guides/google-cloud-build.md @@ -106,7 +106,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'build' - name: 'earthly/earthly:v0.8.11' + name: 'earthly/earthly:v0.8.12' args: - --ci - --push @@ -117,7 +117,7 @@ Running this build will use the [`cloudbuild.yaml`](https://github.com/earthly/c ```yaml - id: 'gcp-test' - name: 'earthly/earthly:v0.8.11' + name: 'earthly/earthly:v0.8.12' args: - +gcp-cloudbuild secretEnv: diff --git a/docs/ci-integration/guides/woodpecker-integration.md b/docs/ci-integration/guides/woodpecker-integration.md index 51ab2436..f566d756 100644 --- a/docs/ci-integration/guides/woodpecker-integration.md +++ b/docs/ci-integration/guides/woodpecker-integration.md @@ -14,7 +14,7 @@ The project needs to be [trusted](https://woodpecker-ci.org/docs/usage/project-s #.woodpecker.yml pipeline: earthly: - image: earthly/earthly:v0.8.11 + image: earthly/earthly:v0.8.12 volumes: - /var/run/docker.sock:/var/run/docker.sock environment: diff --git a/docs/ci-integration/overview.md b/docs/ci-integration/overview.md index 13d997ee..e68f931a 100644 --- a/docs/ci-integration/overview.md +++ b/docs/ci-integration/overview.md @@ -27,7 +27,7 @@ Once you have ensured that the dependencies are available, you'll need to instal This is the simplest method for adding `earthly` to your CI. It will work best on dedicated computers, or in scripted/auto-provisioned build environments. You can pin it to a specific version like so: ```shell -wget https://github.com/earthly/earthly/releases/download/v0.8.11/earthly-linux-amd64 -O /usr/local/bin/earthly && \ +wget https://github.com/earthly/earthly/releases/download/v0.8.12/earthly-linux-amd64 -O /usr/local/bin/earthly && \ chmod +x /usr/local/bin/earthly && \ /usr/local/bin/earthly bootstrap ``` diff --git a/docs/ci-integration/use-earthly-ci-image.md b/docs/ci-integration/use-earthly-ci-image.md index f99b44fa..f14af7a5 100644 --- a/docs/ci-integration/use-earthly-ci-image.md +++ b/docs/ci-integration/use-earthly-ci-image.md @@ -36,19 +36,19 @@ For more details on using remote execution, [see our guide on remote BuildKit](. The image expects the source code of the application you are building in the current working directory (by default `/workspace`). You will need to copy or mount the necessary files to that directory prior to invoking the entrypoint. ```bash -docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.11 +my-target +docker run --privileged --rm -v "$PWD":/workspace earthly/earthly:v0.8.12 +my-target ``` Or, if you would like to use an alternative directory: ```bash -docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.11 +my-target +docker run --privileged --rm -v "$PWD":/my-dir -w /my-dir earthly/earthly:v0.8.12 +my-target ``` Alternatively, you may rely on Earthly to perform a git clone, by using the remote target reference format. For example: ```bash -docker run --privileged --rm earthly/earthly:v0.8.11 github.com/foo/bar:my-branch+target +docker run --privileged --rm earthly/earthly:v0.8.12 github.com/foo/bar:my-branch+target ``` #### `NO_BUILDKIT` Environment Variable diff --git a/docs/cloud/satellites/gha-runners.md b/docs/cloud/satellites/gha-runners.md index 65a32c3a..73720915 100644 --- a/docs/cloud/satellites/gha-runners.md +++ b/docs/cloud/satellites/gha-runners.md @@ -102,11 +102,11 @@ docker run --privileged \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ -e RUNNER_GHA_ENABLED=true \ - earthly/satellite:v0.8.11 + earthly/satellite:v0.8.12 ``` {% hint style='info' %} ##### Required version -Use at least `earthly/satellite:v0.8.11 +Use at least `earthly/satellite:v0.8.12 {% endhint %} #### Logs diff --git a/docs/cloud/satellites/self-hosted.md b/docs/cloud/satellites/self-hosted.md index 53771aa5..f04d669d 100644 --- a/docs/cloud/satellites/self-hosted.md +++ b/docs/cloud/satellites/self-hosted.md @@ -26,7 +26,7 @@ docker run --privileged \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ -e SATELLITE_HOST=153.65.8.0 \ - earthly/satellite:v0.8.11 + earthly/satellite:v0.8.12 ``` The following environment variables are required: @@ -107,7 +107,7 @@ runcmd: -e EARTHLY_TOKEN=GuFna*****nve7e \ -e EARTHLY_ORG=my-org \ -e SATELLITE_NAME=my-satellite \ - earthly/satellite:v0.8.11 + earthly/satellite:v0.8.12 ``` Note that the `SATELLITE_HOST` variable is unset in this example so that the host is auto-discovered by the satellite when it starts. This should result in the instance’s private DNS being used as the host. @@ -134,7 +134,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.name - image: earthly/satellite:v0.8.11 + image: earthly/satellite:v0.8.12 securityContext: privileged: true ports: @@ -174,7 +174,7 @@ Here’s an example of how to attach the volume using the Docker command line: ``` docker run -v earthly-cache:/tmp/earthly:rw \ ... - earthly/satellite:v0.8.11 + earthly/satellite:v0.8.12 ``` ## Additional Environment Variables diff --git a/docs/docker-images/all-in-one.md b/docs/docker-images/all-in-one.md index c0356328..47948959 100644 --- a/docs/docker-images/all-in-one.md +++ b/docs/docker-images/all-in-one.md @@ -2,7 +2,7 @@ This image contains `earthly`, `buildkit`, and some extra configuration to enabl ## Tags -Currently, the `latest` tag is `v0.8.11`. +Currently, the `latest` tag is `v0.8.12`. For other available tags, please check out https://hub.docker.com/r/earthly/earthly/tags ## Quickstart @@ -14,7 +14,7 @@ Want to get started? Here are a couple sample `docker run` commands that cover t This example shows how to use the Earthly container in conjunction with a Docker socket that Earthly can use to start up the BuildKit daemon. ```bash -docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.11 +for-linux +docker run -t -v $(pwd):/workspace -v /var/run/docker.sock:/var/run/docker.sock -e NO_BUILDKIT=1 earthly/earthly:v0.8.12 +for-linux ``` Here's a quick breakdown: @@ -30,7 +30,7 @@ Here's a quick breakdown: This example shows how the Earthly image can start a BuildKit daemon within the same container. A Docker socket is not needed in this case, however the container will need to be run with the `--privileged` flag. ```bash -docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.11 +for-linux +docker run --privileged -t -v $(pwd):/workspace -v earthly-tmp:/tmp/earthly:rw earthly/earthly:v0.8.12 +for-linux ``` Here's a quick breakdown: @@ -46,7 +46,7 @@ Here's a quick breakdown: This example utilizes an [Earthly Satellite](https://docs.earthly.dev/earthly-cloud/satellites) to perform builds. The code to be built is downloaded directly from GitHub. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.11 --ci --org --sat github.com/earthly/earthly+for-linux +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.12 --ci --org --sat github.com/earthly/earthly+for-linux ``` Here's what this does: @@ -61,11 +61,11 @@ Here's what this does: This example shows how to use the Earthly container to run non-build commands. This is useful for running commands like `earthly account`, or `earthly secret`. ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.11 account list-tokens +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.12 account list-tokens ``` ```bash -docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.11 secret get foo +docker run -t -e NO_BUILDKIT=1 -e EARTHLY_TOKEN= earthly/earthly:v0.8.12 secret get foo ``` ## Using This Image diff --git a/docs/docker-images/buildkit-standalone.md b/docs/docker-images/buildkit-standalone.md index bb98ca38..8d0c7dc4 100644 --- a/docs/docker-images/buildkit-standalone.md +++ b/docs/docker-images/buildkit-standalone.md @@ -4,7 +4,7 @@ This image contains `buildkit` with some Earthly-specific setup. This is what Ea ## Tags -Currently, the `latest` tag is `v0.8.11`. +Currently, the `latest` tag is `v0.8.12`. For other available tags, please check out https://hub.docker.com/r/earthly/buildkitd/tags ## Quickstart diff --git a/docs/guides/importing.md b/docs/guides/importing.md index 8d1ad818..fa38ede3 100644 --- a/docs/guides/importing.md +++ b/docs/guides/importing.md @@ -96,7 +96,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.11+earthly` +* `github.com/earthly/earthly:v0.8.12+earthly` * `my-import+build` ## Artifact reference @@ -110,7 +110,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.11+earthly/earthly` +* `github.com/earthly/earthly:v0.8.12+earthly/earthly` * `my-import+build/my-artifact` ## Image reference @@ -131,7 +131,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.11+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.12+DOWNLOAD_DIND` * `my-import+COMPILE` For more information on functions, see the [Functions Guide](./functions.md). @@ -176,7 +176,7 @@ Another form of a Earthfile reference is the remote form. In this form, the reci |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.11` | `github.com/earthly/earthly:v0.8.11+build` | `github.com/earthly/earthly:v0.8.11+build/out.bin` | `github.com/earthly/earthly:v0.8.11+COMPILE` | +| `github.com/earthly/earthly:v0.8.12` | `github.com/earthly/earthly:v0.8.12+build` | `github.com/earthly/earthly:v0.8.12+build/out.bin` | `github.com/earthly/earthly:v0.8.12+COMPILE` | ### Import reference @@ -186,7 +186,7 @@ Finally, the last form of Earthfile referencing is an import reference. Import r |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.11` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.12` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/docs/guides/target-ref.md b/docs/guides/target-ref.md index eac37f4a..e582a477 100644 --- a/docs/guides/target-ref.md +++ b/docs/guides/target-ref.md @@ -20,7 +20,7 @@ Here are some examples: * `+build` * `./js+deps` -* `github.com/earthly/earthly:v0.8.11+earthly` +* `github.com/earthly/earthly:v0.8.12+earthly` ## Artifact reference @@ -33,7 +33,7 @@ Here are some examples: * `+build/my-artifact` * `+build/some/artifact/deep/in/a/dir` * `./js+build/dist` -* `github.com/earthly/earthly:v0.8.11+earthly/earthly` +* `github.com/earthly/earthly:v0.8.12+earthly/earthly` ## Image reference @@ -53,7 +53,7 @@ Here are some examples: * `+COMPILE` * `./js+NPM_INSTALL` -* `github.com/earthly/earthly:v0.8.11+DOWNLOAD_DIND` +* `github.com/earthly/earthly:v0.8.12+DOWNLOAD_DIND` For more information on functions, see the [functions guide](./functions.md). @@ -93,7 +93,7 @@ Another form of a project reference is the remote form. In this form, the recipe |----|----|----|----| | `///path/in/project[:some-tag]` | `///path/in/project[:some-tag]+` | `///path/in/project[:some-tag]+/` | `///path/in/project[:some-tag]+` | | `github.com/earthly/earthly/buildkitd` | `github.com/earthly/earthly/buildkitd+build` | `github.com/earthly/earthly/buildkitd+build/out.bin` | `github.com/earthly/earthly/buildkitd+COMPILE` | -| `github.com/earthly/earthly:v0.8.11` | `github.com/earthly/earthly:v0.8.11+build` | `github.com/earthly/earthly:v0.8.11+build/out.bin` | `github.com/earthly/earthly:v0.8.11+COMPILE` | +| `github.com/earthly/earthly:v0.8.12` | `github.com/earthly/earthly:v0.8.12+build` | `github.com/earthly/earthly:v0.8.12+build/out.bin` | `github.com/earthly/earthly:v0.8.12+COMPILE` | ### Import reference @@ -103,7 +103,7 @@ Finally, the last form of project referencing is an import reference. Import ref |----|----|----|----|----| | `IMPORT AS ` | `` | `+` | `+/` | `+` | | `IMPORT github.com/earthly/earthly/buildkitd` | `buildkitd` | `buildkitd+build` | `buildkitd+build/out.bin` | `buildkitd+COMPILE` | -| `IMPORT github.com/earthly/earthly:v0.8.11` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | +| `IMPORT github.com/earthly/earthly:v0.8.12` | `earthly` | `earthly+build` | `earthly+build/out.bin` | `earthly+COMPILE` | Here is an example in an Earthfile: diff --git a/release/README.md b/release/README.md index d4acd0ba..d0969800 100644 --- a/release/README.md +++ b/release/README.md @@ -18,7 +18,7 @@ git checkout main && git pull ``` * Update the CHANGELOG.md with the corresponding release notes and open a PR - * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.11...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. + * Use a comparison such as https://github.com/earthly/earthly/compare/v0.8.12...main (replace the versions in the URL with the previously released version) or a tool such as `gitk` (aka `git-gui`) to see which PRs will go into this release. * Make sure that main build is green for all platforms (check build status for the latest commit on GitHub). * Make sure the following build status are green: | Platform | Status | From 0abf6bfe67ee29fd405b853bf7ae929722ceee13 Mon Sep 17 00:00:00 2001 From: nacho Date: Fri, 24 May 2024 21:45:26 +0200 Subject: [PATCH 16/16] merge from main with version updated --- docs/cloud/satellites/gha-runners.md | 173 ++++++++++----------------- 1 file changed, 64 insertions(+), 109 deletions(-) diff --git a/docs/cloud/satellites/gha-runners.md b/docs/cloud/satellites/gha-runners.md index 73720915..59f7e14d 100644 --- a/docs/cloud/satellites/gha-runners.md +++ b/docs/cloud/satellites/gha-runners.md @@ -1,142 +1,112 @@ -# Satellites as GHA runners (**experimental**) +# Satellites as GitHub Actions runners -Earthly Satellites are bundled with a GitHub self-hosted runner, so they can directly pull jobs from GHA without the need of an intermediate runner. - -This self-hosted runner comes with the Earthly CLI preinstalled and configured to use the Satellite BuildKit instance, so GHA jobs will share the same Satellite cache than the traditional Satellite builds. - -The self-hosted runner can run _any_ GHA job, not necessarily an Earthly command. Since it runs on the Satellite, it benefits from its persistent local storage (see ["Persistent Folders" section below](#persistent-folders)) across builds. - -## Early access -This feature is in closed-beta at the moment. You can request early access through support@earthly.dev +{% hint style='warning' %} +This feature is experimental. -## Configuration -Once approved for the closed-beta, you can enable satellite-based GHA workers for specific GitHub repositories or for all repositories in your organization. +Not recommended for production usage since it might introduce breaking changes in the future. -In either case the configuration is done through the `earthly` CLI, and you will need to provide us with a GitHub personal access token to talk to the GitHub API on your behalf and perform the integration. +Feedback is welcome and much appreciated! -### Integration details +{% endhint %} -The integration process registers a webhook in your GitHub repository/organization to receive events associated to GHA jobs and checks that the token has permissions to create self-hosted runners. -Then it stores the encrypted token on our end (we will use it every time a new job event is processed). +Earthly satellites are now bundled with a GitHub Actions runner, so they can directly pull jobs from GitHub Actions without the need of an intermediate runner. -### GitHub token -Follow the [official docs](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) for detailed information on how to create a GitHub token. +These runners come with the Earthly CLI preinstalled and configured to use the satellite BuildKit instance, so GitHub Actions jobs will share the same satellite cache than the traditional satellite builds. -#### Expiration time -Important: The token is used during the configuration process and _each time_ a job event is received -- be sure to set the expiration time accordingly. +## Getting started -#### Permissions -##### Organization-wide integration -For organization-wide integrations, the user must be an admin of the organization and the token must have the following scopes/permissions: +Satellite-based GitHub Actions runners can be enabled for a particular repository or for all repositories of a GitHub organization at once. -Personal access tokens (classic) scopes: -- `admin:org_hook` -- `admin:org` +The integration process requires you to provide us with a GitHub token, so we can: +- register a webhook in your GitHub repository/organization to receive events associated to GitHub Actions jobs +- create GitHub self-hosted runners on demand, to process your repository/organization jobs -Fine grained token permissions: -- `organization_hooks:write` -- `organization_self_hosted_runners:write` +Follow the next steps to create such integrations: -##### Repository integration -For repository integrations, the user must be an admin of the repository and the token must have the following scopes/permissions: +### 1. Create a GitHub token +Both GitHub classic and fine-grained tokens are supported, but depending on the type of installation (organization-wide or single-repository), the provided token requires different scopes: -Personal access tokens (classic) scopes: -- `admin:repo_hook` -- `repo` +| Integration type | User type | Classic token scopes | Fine-grained token permissions | +|------------------|--------------------|-------------------------------|----------------------------------------------------------------------| +| Organization | Organization admin | `admin:org_hook`, `admin:org` | `organization_hooks:write`, `organization_self_hosted_runners:write` | +| Repository | Repository admin | `admin:repo_hook`, `repo` | `repository_hooks:write`, `administration:write` | -Fine grained token permissions: -- `repository_hooks:write` -- `administration:write` +{% hint style='info' %} +Follow the [official docs](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) for detailed information on how to create a GitHub token, and make sure to set an expiration long enough, since the integration won't work after the token expires. +{% endhint %} -### CLI +### 2. Register the integration via CLI +Create the integration using the `earthly github add` CLI command, passing the token created in the previous step. -`$ earthly github add --help` +#### Organization integration +``` +earthly github add \ + --org \ + --gh-org \ + --gh-token +``` +#### Single repository integration ``` -NAME: -earthly github add - Add GHA integration - -USAGE: -earthly github add --org --gh-org [--gh-repo ] --gh-token - -DESCRIPTION: -This command sets the configuration to create a new GitHub-Earthly integration, to trigger satellite builds from GHA (GitHub Actions). -From the GitHub side, integration can be done at two levels: organization-wide and per repository. -The provided token must have enough permissions to register webhooks and to create GitHub self hosted runners in those two scenarios. - -OPTIONS: ---org value The name of the Earthly organization to set an integration with. Defaults to selected organization ---gh-org value The name of the GitHub organization to set an integration with ---gh-repo value The name of the GitHub repository to set an integration with ---gh-token value The GitHub token used for the integration. Personal Access Token (classic) or fine grained tokens supported. ---help, -h show help -``` +earthly github add \ + --org \ + --gh-org \ + --gh-repo \ + --gh-token +``` + +### 3. Configure your satellites -## Satellite configuration -This feature is currently disabled by default for satellites. It must be enabled in a per-satellite basis as follows: +This feature needs to be enabled during satellite creation to be able to use it. -### Managed (Earthly Cloud) Satellites +#### Earthly-Cloud satellites Launch the satellite with the `enable-gha-runner` [feature-flag](https://docs.earthly.dev/earthly-cloud/satellites/managing#changing-feature-flags) enabled. ``` -earthly satellite --feature-flag enable-gha-runner +earthly satellite launch --feature-flag enable-gha-runner ``` -### Self-hosted satellites -To enable the GH runner for a self-hosted satellite, just set this environment entry when launching it: +#### Self-hosted satellites +To enable the GH runner for a self-hosted satellite, set this environment entry when launching it: ``` -e RUNNER_GHA_ENABLED=true ``` -also note that the satellite container must have access to the docker daemon in order to run the GHA jobs in containers: +also note that the satellite container must have access to the docker daemon in order to run the GitHub Actions jobs in containers: ``` -v /var/run/docker.sock:/var/run/docker.sock ``` -#### Example +##### Example ```shell docker run --privileged \ -v /var/run/docker.sock:/var/run/docker.sock \ -v satellite-cache:/tmp/earthly:rw \ -p 8372:8372 \ - -e EARTHLY_TOKEN=GuFna*****nve7e \ - -e EARTHLY_ORG=my-org \ - -e SATELLITE_NAME=my-satellite \ - -e SATELLITE_HOST=153.65.8.0 \ + -e EARTHLY_TOKEN= \ + -e EARTHLY_ORG= \ + -e SATELLITE_NAME= \ + -e SATELLITE_HOST= \ -e RUNNER_GHA_ENABLED=true \ earthly/satellite:v0.8.12 ``` {% hint style='info' %} -##### Required version -Use at least `earthly/satellite:v0.8.12 +**Required version:** Use at least `earthly/satellite:v0.8.12` {% endhint %} -#### Logs -You should see a log message like this, when the GHA runner is enabled: +##### Logs +You should see a log message like this, when the GitHub Actions runner is enabled: ``` -{...,"msg":"starting GHA job polling loop",...} +{...,"msg":"starting GitHub Actions job polling loop",...} ``` -## GHA job definition -Job configuration is performed via [runs-on](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on) labels. In particular: +### 4. Configure your GitHub Actions jobs +In order to make a job run into the satellite, you'll need to set its [runs-on](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on) label as follows: -### Satellite name ``` -earthly-satellite# +runs-on: [earthly-satellite#] ``` -This label marks the job to run on the referenced satellite, belonging to the [integrated](#cli) organization. -Only one label starting with `earthly-satellite#` is allowed per job. -### Persistent folders -``` -earthly-cache-folder# -``` -These labels allow defining folders whose contents will be shared across multiple builds. -This is specially useful for defining persistent caches for tools external to Earthly. - -Note that multiple labels starting with `earthly-cache-folder#` can be set for a given job, one per persistent folder. - -### Examples -#### Running an earthly job -The following example runs the `+build` target in the Satellite. Given that the GH runner is configured to use the Satellite BuildKit instance, the persistent satellite cache is implicitly used here. +#### Example +The following example runs the `+build` target in the satellite. Given that the GH runner is configured to use the satellite BuildKit instance, the persistent satellite cache is implicitly used here. ```yml earthly-job: runs-on: [earthly-satellite#my-gha-satellite] @@ -148,23 +118,8 @@ earthly-job: - name: Earthly build run: earthly -ci +build ``` + {% hint style='warning' %} -Make sure to set your `EARTHLY_TOKEN` in the environment. Future versions will remove this requirement. -{% endhint %} +For Earthly-Cloud satellites make sure you have an [EARTHLY_TOKEN](https://docs.earthly.dev/docs/earthly-command#earthly-account-create-token) available in your [GitHub Actions secrets](https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions) store, and add it to the job environment, as shown in the previous example. Future versions will remove this requirement. -#### Caching non-Earthly jobs -The following example runs maven externally to Earthly, but still benefits from the satellite storage to mount a persistent local cache for the maven artifacts: -```yml -maven-job: - runs-on: [earthly-satellite#my-gha-satellite, earthly-cache-folder#/root/.m2] - env: - FORCE_COLOR: 1 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 - with: - java-version: '17' - distribution: 'temurin' - - name: Run the Maven verify phase - run: mvn --batch-mode --update-snapshots verify -``` +{% endhint %}