v0.8.0-rc1
Pre-release
Pre-release
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.- It is no longer possible to override a global ARG when calling a target.
- 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.
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
).
Additional Info
- This release includes changes to buildkit