Previously, child tasks would inherit parent tasks labels already resolved with the parent's environment. Now, child tasks inherit the parent's labels unresolved and are resolved using the child task's environment.
tasks:
parent:
abstract: true
environment:
FOOD: pizza
labels:
food: $FOOD
child:
extends: [parent]
environment:
FOOD: paella
# ebro -i
# before
:child:
environment:
FOOD: paella
labels:
food: pizza
# after
:child:
environment:
FOOD: paella
labels:
food: paella
Updated Go dependencies.
labels
, just like tasks.modules
is available during --inventory --query
evaluation.1.24.0
-> 1.24.1
.EBRO_TASK_MODULE
to EBRO_MODULE
and make it available for interpolation at module environment level.1.23.6
-> 1.24.0
.script
, when.output_changes
and when.check_fails
support a sequence of strings instead of a single string.script
, when.output_changes
and when.check_fails
) are concatenated instead of replaced during task extension.1.23.4
-> 1.23.6
.This release was removed.
EBRO_ROOT_FILE
for all tasks. This points to the root Ebro.yaml
file.requires
and required_by
fields.expected value after --file flag
regardless of the actual flag name.--filter
from -list
and implemented --query
for -inventory
instead.interactive
and labels
properties introduced in version 0.10.0
are included in extends
operations. Expanding environment variables now supports referencing variables that were defined before the current variable in the same map.
environment:
VERSION: "1.0.0"
tasks:
default:
environment:
VERSION: "2.0.0"
VERSION_RC: "${VERSION}-rc"
script: echo "$VERSION_RC"
Running the Ebro.yaml
file above would result in:
1.0.0-rc
2.0.0-rc
ebrow
workspace script: Now using shasum
instead of sha256sum
so the used command behaves the same in both Linux and MacOs.-list
command with the --filter
flag, using an expr expression.labels
for defining key/value metadata. Ebro does nothing with this information and is intended for filtering purposes or for being consumed by third party tools.interactive
for flagging tasks as interactive. Interactive tasks receive the environment's stdin
during execution.EBRO_BIN
is the absolute path to Ebro's binary.EBRO_TASK_ID
is the current task's ID (:module:task
).EBRO_TASK_MODULE
is the current task's module (:module
).EBRO_TASK_NAME
is the current task's name (task
).import.from
parameter does not support Bash environment variable expansion anymore.requires
(:other:task?
)if_tasks_exist
property for tasks that should only exist when other tasks do.EBRO_TASK_WORKING_DIRECTORY
.check_fails
executions is never printed to stdout.-list
for listing just the names of the tasks in the inventory.-i
, -l
, -p
, -v
and -h
.Ebro.yaml
files are not allowed anymore.:
, another :
will not be added.ebro :foo
would try to run the task ::foo
ebro :foo
is equivalent to calling ebro foo
.quiet
property. Learn more about it in the documentation.go-yaml/yaml
to goccy/go-yaml
.set -x
added in previous version have been revertedIt's more secure to let users call themselves set -x
whenever they need it instead of enabling it by default. It's easy to leak secrets on stdout with it enabled.
required_by
behaviorReferencing a task in required_by
doesn't add the referenced task to the plan anymore. The referenced task will need to be referenced in a requires
or directly called as a target. Here's an example:
tasks:
default:
requires: [b]
a:
script: echo A
b:
required_by: [a]
script: echo B
Before this release:
███ [:b] running
B
███ [:a] running
A
███ [:default] satisfied
After this release:
███ [:b] running
B
███ [:default] satisfied
From now on, tasks that have nothing to do (no script
nor requires
) are considered invalid and Ebro's execution will error during the inventory process.
script
s run with set -x
by defaultFrom now on, set -x
is prepended to task script
s before being executed to enable simple command tracing.
.sha256
files produced during the release process are valid files to be checked by sha256sum
by running sha256sum --check <binary>.sha256
, easing up the check process. Before this release it just contained the SHA256 checksum of the file.1.23.3
-> 1.23.4
.ebrow
script: Now Ebro's version is part of the bin path. As a result, updating the ebrow
script with a new version will force a download of the new version when executed instead of keeping the old version.Initial release of Ebro.