-
-
Notifications
You must be signed in to change notification settings - Fork 724
Labels
area: variablesChanges related to variables.Changes related to variables.
Description
We are using for loops to deploy things for a list of tenants, but for some reason the deferred command is missing any vars interpolated into the vars of the deferred task.
Example…
version: '3'
tasks:
loop:
vars:
NAMES: 'Ana Bob Charlie'
cmds:
- for: { var: NAMES }
task: 'test'
vars:
NAME: '{{ .ITEM }}'
test:
requires:
vars: [ 'NAME' ]
cmds:
- task: 'x'
vars:
NAME: 'During: {{.NAME}}'
- defer:
task: 'x'
vars:
NAME: 'Deferred: {{.NAME}}'
x:
vars:
requires: ['NAME']
cmd: 'echo "{{.NAME}}"'
Results in …
task: [x] echo "During: Ana"
During: Ana
task: [x] echo "Deferred: "
Deferred:
task: [x] echo "During: Bob"
During: Bob
task: [x] echo "Deferred: "
Deferred:
task: [x] echo "During: Charlie"
During: Charlie
task: [x] echo "Deferred: "
Deferred:
You'll see from this example that the regular commands display the names, but the deferred ones do not.
If you interpolate into a direct command, rather than a task this works fine…
tasks:
loop:
vars:
NAMES: 'Ana Bob Charlie'
cmds:
- for: { var: NAMES }
task: 'test'
vars:
NAME: '{{ .ITEM }}'
test:
requires:
vars: [ 'NAME' ]
cmds:
- task: 'x'
vars:
NAME: 'During: {{.NAME}}'
- defer: 'echo "Deferred: {{.NAME}}"'
x:
vars:
requires: ['NAME']
cmd: 'echo "{{.NAME}}"'
Resulting in…
$ task loop
task: [x] echo "During: Ana"
During: Ana
task: [test] echo "Deferred: Ana"
Deferred: Ana
task: [x] echo "During: Bob"
During: Bob
task: [test] echo "Deferred: Bob"
Deferred: Bob
task: [x] echo "During: Charlie"
During: Charlie
task: [test] echo "Deferred: Charlie"
Deferred: Charlie
- Task version: v3.39.2 (h1:Zt7KXHmMNq5xWZ1ihphDb+n2zYLCo4BdRe09AnMMIgA=)
- Operating system: MacOS 14.6.1 (23G93)
- Experiments enabled: None
marco-m-pix4d
Metadata
Metadata
Assignees
Labels
area: variablesChanges related to variables.Changes related to variables.