task
task copied to clipboard
Fix and modify requires behavior.
Fix and modify the behavior of requires
.
Fixes #1676 (discussion #1620) Modifies/updates #1204
Requires was not working in the case that a variable was set to nil (see discussion/issue).
Additional, the behavior of requires is modified so that an zero length (empty) string value fails the required check. In more complex use cases, with sub-tasks and variable templates, the expectation is that requires will ensure that a variable is set to something. In such cases, an empty string is not considered as something and so the feature is not useful.
An alternative would be to have a way to set a variable value to nil
via the template mechanism.
The change is tested with the following taskfile (modified from the original discussion).
version: "3"
silent: true
vars:
IMAGE_NAME: my-web-app
CONTAINER_REGISTRY:
# CONTAINER_REGISTRY: # comment
# CONTAINER_REGISTRY: ''
# CONTAINER_REGISTRY: ' '
tasks:
check-missing:
desc: Test the task variables
requires:
vars: [CONTAINER_REGISTRY]
cmds:
- echo "CONTAINER_REGISTRY is {{spew .CONTAINER_REGISTRY}}"