requires and required_by support a script parameter to define requirements based on script output.for_each parameter in modules that allow repeating a module based on the output of a command.1.24.1 -> 1.24.2.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-rc2.0.0-rcebrow 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 ::fooebro :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.
scripts run with set -x by defaultFrom now on, set -x is prepended to task scripts 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.