Releases: earthly/earthly
Releases · earthly/earthly
v0.8.9
v0.8.8
Added
- New experimental wildcard-based copy, e.g.
COPY ./services/*+artifact/* .
which would invokeCOPY
for./services/foo+artifact
, and./services/bar+artifact
(assuming two services foo and bar, both having aartifact
target in their respective Earthfile). Enable with theVERSION --wildcard-copy
feature flag. #3966. - New built-in
ARG
s -EARTHLY_GIT_AUTHOR_EMAIL
andEARTHLY_GIT_AUTHOR_NAME
will contain the author email and author name respectively. Enable with theVERSION --git-author-email-name-args
feature flag. - New
--raw-output
flag available onRUN
that outputs line without target name. Enable withVERSION --raw-output
. #3713
Changed
EARTHLY_GIT_AUTHOR
built-inARG
will now contain both name and email, when enabled with theVERSION --git-author-email-name-args
feature flag. Previously it only contained the email. #3822
Fixed
- Make
LET
/SET
commands block parallel commands such asBUILD
until the former are processed, similar to the behavior ofARG
. #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
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
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
Added
- Added
--aws
flag toRUN
command which makes AWS environment variables or ~/.aws available. Enable with theVERSION --run-with-aws
feature flag. #3803 - Added
--allow-privileged
flag toFROM DOCKERFILE
command. Enable with theVERSION --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., anEarthfile
containingBUILD ./*+test
invoked withearthly ./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
toFUNCTION
in hint when a secret is not found.
Additional Info
- This release includes changes to buildkit
v0.8.4
Added
- The internal
dockerd-wrapper.sh
script, which is used to implementWITH 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 withBUILD --auto-skip
; this feature can be enabled withVERSION --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
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
Added
- Added a
--force
flag to thesatellite 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 asmin(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
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 aSAVE 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
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:
- If you are still using
VERSION 0.5
, upgrade those Earthfiles toVERSION 0.6
orVERSION 0.7
. - Upgrade your Earthly binary to 0.8 in CI and across your team. The Earthly 0.8 binary can run both
VERSION 0.6
andVERSION 0.7
Earthfiles (butVERSION 0.5
support has been dropped). - 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 ofVERSION 0.6
,VERSION 0.7
andVERSION 0.8
Earthfiles in the same project. Earthly handles that gracefully. See changes below for information on backwards incompatible changes when migrating fromVERSION 0.7
toVERSION 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. ARG
s inside of targets will no longer have their default value overridden by globalARG
s.- Declaring a
CACHE ...
in a target will no longer be copied to children targets when referenced via aFROM +...
; to persist the contents of the cache, it is now required to use theCACHE --persist ...
flag. - The
COMMAND
keyword has been renamed toFUNCTION
.
Added
LET
- Allows declaring a local variable. This command works similarly toARG
except that it cannot be overridden from the CLI.LET
variables are allowed to shadowARG
variables, which allows you to promote anARG
to a local variable so that it may be used withSET
.SET
- a new command that allows changing the value of variables declared withLET
.- 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 inFROM DOCKERFILE
targets.DO --pass-args
,BUILD --pass-args
etc allow passing all build arguments to external Earthfiles.CACHE --id=...
andRUN --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 atest
target in their respective Earthfile) #3582.
Removed
VERSION 0.5
is now obsolete. DeclaringVERSION 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. - 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. #1679BUILD
was not expanding--platform
argument values.
Additional Info
- This release includes changes to buildkit