task
task copied to clipboard
When multiple includes are used sometimes variables randomly get lost
- Task version: 3.37.2
- Operating system: Linux
- Experiments enabled:
Pretty much the same issue that was described here, please find below a pretty similar reproduceable example.
Taskfile.dist.yml:
version: "3"
includes:
a:
taskfile: ./a/Taskfile.yml
b:
taskfile: ./b/Taskfile.yml
vars:
FIRSTITEM: "{{ .FIRSTITEM }}"
SECONDITEM: "{{ .SECONDITEM }}"
THIRDITEM: "{{ .THIRDITEM }}"
tasks:
print-list:
desc: 'Print the list'
cmds:
- for: { var: MYLIST }
task: print:item
vars: { MYITEM: ' {{ .ITEM }}' }
vars:
MYLIST: >
{{ .FIRSTITEM }}
{{ .SECONDITEM }}
{{ .THIRDITEM }}
{{ .FIRSTITEMEXTENDED }}
{{ .SECONDITEMEXTENDED }}
{{ .THIRDITEMEXTENDED }}
print:item:
desc: 'Print the item'
label: "print:item-{{ .MYITEM }}"
cmds:
- echo "Current item {{ .MYITEM }}"
var:
MYITEM: '{{ .MYITEM }}'
./a/Taskfile.yml
version: "3"
vars:
FIRSTITEM: "FIRST"
SECONDITEM: "SECOND"
THIRDITEM: "THIRD"
./b/Taskfile.yml
version: "3"
vars:
FIRSTITEMEXTENDED: "{{ .FIRSTITEM }}EXTENDED"
SECONDITEMEXTENDED: "{{ .SECONDITEM }}EXTENDED"
THIRDITEMEXTENDED: "{{ .THIRDITEM }}EXTENDED"
testTask.sh
#!/bin/bash
for i in {1..1000}; do
task print-list
done
Executing this with ./testTask.sh | grep -o FIRSTEXTENDED | wc -l
returns 1000 for version 3.36.0 it only return 817 for version 3.37.2, also visible in the print output in the excerpt below:
task: [print:item- SECOND] echo "Current item SECOND"
task: [print:item- THIRD] echo "Current item THIRD"
task: [print:item- FIRSTEXTENDED] echo "Current item FIRSTEXTENDED"
task: [print:item- SECONDEXTENDED] echo "Current item SECONDEXTENDED"
task: [print:item- THIRDEXTENDED] echo "Current item THIRDEXTENDED"
task: [print:item- FIRST] echo "Current item FIRST"
task: [print:item- SECOND] echo "Current item SECOND"
task: [print:item- THIRD] echo "Current item THIRD"
task: [print:item- EXTENDED] echo "Current item EXTENDED"
task: [print:item- EXTENDED] echo "Current item EXTENDED"
task: [print:item- EXTENDED] echo "Current item EXTENDED"
task: [print:item- FIRST] echo "Current item FIRST"
task: [print:item- SECOND] echo "Current item SECOND"
task: [print:item- THIRD] echo "Current item THIRD"
task: [print:item- FIRSTEXTENDED] echo "Current item FIRSTEXTENDED"
task: [print:item- SECONDEXTENDED] echo "Current item SECONDEXTENDED"
task: [print:item- THIRDEXTENDED] echo "Current item THIRDEXTENDED"