-
-
Notifications
You must be signed in to change notification settings - Fork 766
Closed as not planned
Description
I am confused why local variables are not propagated to default task calls.
Consider following Taskfile:
version: '3'
vars:
MY_VAR: "global"
tasks:
my-var-test:
vars:
MY_VAR: "local"
deps:
- echo-my-var
- task: echo-my-var
vars:
MY_VAR: "call-specific"
cmds:
- echo {{.MY_VAR}}
- task: echo-my-var
- task: echo-my-var
vars:
MY_VAR: "call-specific"
echo-my-var:
cmds:
- echo {{.MY_VAR}}
It would be very helpful to define some local vars and use them as fallback defaults, greatly reducing copy-paste code.
task my-var-test
Actual:
task: [echo-my-var] echo call-specific
task: [echo-my-var] echo global
global
call-specific
task: [my-var-test] echo local
local
task: [echo-my-var] echo global
global
task: [echo-my-var] echo call-specific
call-specific
Expected:
task: [echo-my-var] echo call-specific
task: [echo-my-var] echo local
local
call-specific
task: [my-var-test] echo local
local
task: [echo-my-var] echo local
local
task: [echo-my-var] echo call-specific
call-specific
Real world example: building docker images. Currently i have to duplicate variables every time. They do not fit into global vars as they would need to be unique.
build-docker-image:
internal: true
status:
# check if image does not exist
- test -n $(docker images -q {{.DOCKER_IMAGE_NAME}}:{{.DOCKER_IMAGE_TAG}})
cmds:
- >
docker build -t {{.DOCKER_IMAGE_NAME}}:{{.DOCKER_IMAGE_TAG}}
-f docker/{{.DOCKER_IMAGE_FILE}} {{.ROOT_DIR}}
- Task version: 3.26.0
- Operating system: macOS Ventura 13.2.1
- Experiments enabled: No
JonZeolla, idgenchev, xunleii and vmaerten
Metadata
Metadata
Assignees
Labels
No labels