Skip to content

Releases: earthly/earthly

v0.8.9

24 Apr 17:00
a2fc61e
Compare
Choose a tag to compare

Fixed

  • BUILD --auto-skip was recording failed steps as complete, which would lead to them being skipped on subsequent runs. #4054

Additional Info

  • This release has no changes to buildkit

v0.8.8

17 Apr 17:21
2718b79
Compare
Choose a tag to compare

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.
  • New built-in ARGs - 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.
  • New --raw-output flag available on RUN that outputs line without target name. Enable with VERSION --raw-output. #3713

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

Fixed

  • Make LET/SET commands block parallel commands such as BUILD until the former are processed, similar to the behavior of ARG. #3997
  • LET/SET commands were not properly handled with the use of Auto-skip. #3996

Additional Info

  • This release has no changes to buildkit

v0.8.7

03 Apr 17:38
c18f025
Compare
Choose a tag to compare

Added

  • Warning log when resolving remote references using a git image that doesn't match Buildkit's architecture.
  • New experimental --exec-stats-summary=<path> 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 for the contribution! #3641
  • A warning is displayed if the local buildkit image architecture does not match the host architecture. #3937

Fixed

  • Warning logs during HTTP retries are only displayed in --debug mode.
  • The HOST command will now expand variables. Thanks to @pbecotte for the contribution! #1743
  • runc has been updated to 1.1.12 in the buildkit fork

Additional Info

  • This release includes changes to buildkit

v0.8.6

18 Mar 20:30
b20c1db
Compare
Choose a tag to compare

Added

  • Ability to set arbitrary attributes which certain registries require to support explicit remote caching (via the earthly --remote-cache flag). #3714 and #3868

Fixed

  • Fixed an issue in Auto-skip where a +base target's ARGs were not accounted for when calculating the cache. #3895

Additional Info

  • This release has no changes to buildkit

v0.8.5

11 Mar 21:11
a6b5b8d
Compare
Choose a tag to compare

Added

  • Added --aws flag to RUN command which makes AWS environment variables or ~/.aws available. Enable with the VERSION --run-with-aws feature flag. #3803
  • Added --allow-privileged flag to FROM DOCKERFILE command. Enable with the VERSION --allow-privileged-from-dockerfile feature flag. Thanks to @dustyhorizon for the contribution! #3706

Fixed

  • Fixes an issue where wildcard BUILD's are invoked from a relative directory (e.g., an Earthfile containing BUILD ./*+test invoked with earthly ./rel-dir+target). #3840
  • --pass-args will no longer pass builtin args, which would result in `value cannot be specified for built-in build arge errors. #3775
  • Fixes a parsing issue with BUILD flag arguments and wildcard targets #3862
  • BUILD --auto-skip was silently ignored when the feature flag (VERSION --build-auto-skip) was missing #3870
  • Fix an issue where COPY --if-exists would fail if the non-existing directory includes a wildcard. #3875
  • Fixes an issue with passing the correct org value to Logstream which resulted in missing logs in the web builds view (https://cloud.earthly.dev/your-org/builds).
  • Rename UDC to FUNCTION in hint when a secret is not found.

Additional Info

  • This release includes changes to buildkit

v0.8.4

21 Feb 20:48
c22fa52
Compare
Choose a tag to compare

Added

  • The internal dockerd-wrapper.sh script, which is used to implement WITH DOCKER, will execute /usr/share/earthly/dockerd-wrapper-pre-script, if present, prior to starting the
    inner dockerd process. This can be used to configure options that depend on the host's kernel at run-time.
  • Auto-skip can now be used directly on BUILD commands with BUILD --auto-skip; this feature can be enabled with VERSION --build-auto-skip 0.8. #3581

Changed

  • Satellite rm requires a --force flag if it's running. This should help protect users from accidental deletes.

Fixed

  • Fixes an issue with the registry proxy (used for faster image & artifact exporting) on Docker Desktop for Windows/WSL. #3769
  • Fixes a problem with cache IDs not being expanded. For example: CACHE --id $MY_ARG was not using the assigned value of $MY_ARG.

Additional Info

  • This release includes changes to buildkit

v0.8.3

31 Jan 19:00
7091696
Compare
Choose a tag to compare

Fixed

  • EARTHLY_GIT_REFS was incorrectly returning all references which contained the commit rather than pointed to the current commit. This also increases performance of looking up the branches. #3752
  • Fixes an issue where earthly account login --token was leading to partially created auth config files. 3761

Additional Info

  • This release includes changes to buildkit

v0.8.2

25 Jan 20:08
f991e7f
Compare
Choose a tag to compare

Added

  • Added a --force flag to the satellite update command, which forces a satellite to sleep before starting the update process. This may forcibly kill ongoing builds currently running on the satellite.

Changed

  • Changed the default buildkit cache size to be adaptively set to 20GB, which is then clamped between the range of 10%-55% of the disk size.
    This logic can expressed as min(55%, max(10%, 20GB)).
  • Satellites are now put to sleep before updating via earthly sat update <satellite-name>.

Fixed

  • Fixed an intermittent issue with the registry proxy support container failing immediately on Mac. 3740
  • Fixed a problem with parsing empty results when cleaning up old registry proxy support containers on Mac.
  • Fixed a case where a suggested command would incorrectly contain both --interative and --ci. 3746
  • Disabled the registry proxy server when Earthly is run from within a container. 3736

Additional Info

  • This release has no changes to buildkit

v0.8.1

23 Jan 19:58
7a66901
Compare
Choose a tag to compare

Added

  • Added a new --disable-remote-registry-proxy cli flag, which can be used to disable the remote registry proxy, which is used by earthly when performing a SAVE IMAGE
    command with a satellite / remote buildkit instance. This will cause earthly to use the slower tar-based loading of docker images. #3736
  • A new warning if Earthly is configured with a cache size less than 10GB; running with a small cache size may lead to unexpected cache misses.

Additional Info

  • This release has no changes to buildkit

v0.8.0

22 Jan 19:03
c23e273
Compare
Choose a tag to compare

This version promotes a number of features that have been previously in Experimental and Beta status. To make use of
the features in this version you need to declare VERSION 0.8 at the top of your Earthfile.

Migrating from 0.7

If you are using Earthly 0.7, follow the following steps to migrate:

  1. If you are still using VERSION 0.5, upgrade those Earthfiles to VERSION 0.6 or VERSION 0.7.
  2. Upgrade your Earthly binary to 0.8 in CI and across your team. The Earthly 0.8 binary can run both VERSION 0.6 and VERSION 0.7 Earthfiles (but VERSION 0.5 support has been dropped).
  3. Once everyone is using the Earthly 0.8 binary, upgrade your Earthfiles one by one to VERSION 0.8. It is ok to have a mix of VERSION 0.6, VERSION 0.7 and VERSION 0.8 Earthfiles in the same project. Earthly handles that gracefully. See changes below for information on backwards incompatible changes when migrating from VERSION 0.7 to VERSION 0.8.

This process helps manage the backward breaking changes with minimal disruption.

Summary

Declaring VERSION 0.8 is equivalent to

VERSION \
  --arg-scope-and-set \
  --cache-persist-option \
  --git-refs \
  --global-cache \
  --no-network \
  --pass-args \
  --use-docker-ignore \
  --use-function-keyword \
  --use-visited-upfront-hash-collection \
  0.7

For more information on the individual Earthfile feature flags see the Earthfile version-specific features page.

It should be noted that some of these features break backwards compatibility. See below.

Changed

  • Redeclaring an ARG in the same scope as a previous declaration is now an error.
  • ARGs inside of targets will no longer have their default value overridden by global ARGs.
  • Declaring a CACHE ... in a target will no longer be copied to children targets when referenced via a FROM +...; to persist the contents of the cache, it is now required to use the CACHE --persist ... flag.
  • The COMMAND keyword has been renamed to FUNCTION.

Added

  • LET - Allows declaring a local variable. This command works similarly to ARG except that it cannot be overridden from the CLI. LET variables are allowed to shadow ARG variables, which allows you to promote an ARG to a local variable so that it may be used with SET.
  • SET - a new command that allows changing the value of variables declared with LET.
  • Outputting images from a remote runner has improved performance as it no longer transfers layers that are already present locally.
  • Auto-skip has been promoted to beta status.
  • RUN --network=none allows running a command without network access.
  • .dockerignore files are now used in FROM DOCKERFILE targets.
  • DO --pass-args, BUILD --pass-args etc allow passing all build arguments to external Earthfiles.
  • CACHE --id=... and RUN --mount type=cache,id=... allows setting a custom cache mount ID, thus allowing sharing cache mounts globally across different targets.
  • New satellite sizes: 2xlarge, 3xlarge, 4xlarge
  • New experimental wildcard-based builds, e.g. BUILD ./services/*+test which would call ./services/foo+test, and ./services/bar+test (assuming two services foo and bar, both having a test target in their respective Earthfile) #3582.

Removed

  • VERSION 0.5 is now obsolete. Declaring VERSION 0.5 is no longer supported, and will now raise an error.

Fixed

  • Parallelism is improved when running the same target with different arguments in certain cases (e.g. the target uses WITH DOCKER).
  • Fixed a log sharing upload-resumption bug
  • Fixed multiple issues with the lexer failing to parse certain characters in shell command substitution ($()) and single quoted strings.
    • Some escaped characters, like \#, were failing to parse when used inside shell expressions. Example: $(echo "a#b#c" | cut -f2 -d\#) #3475
    • Some characters, like #, were failing to parse when used inside single-quoted strings: Example: 'this is a # string' #1280
  • Fixed an issue where some escaped ARG shell expressions were being incorrectly preprocessed. Example: $(echo "\"") became $(echo """) #3131
  • The --pass-args feature was not passing active arguments which were set via a default value.
  • SAVE ARTIFACT --if-exists was not saving files based on a wildcard glob pattern. #1679
  • BUILD was not expanding --platform argument values.

Additional Info

  • This release includes changes to buildkit