mirror of
https://github.com/go-task/task.git
synced 2025-01-10 04:18:53 +02:00
31faf05c3a
With a recent commit, template evaluation for variables in tasks got broken. This reindroudces temmplate evaluation in taks, and resolves a series of issues that where previouisly present on master, such as: - Taskvars did not get evaluated as templates. - Taskvars would, in contrast to the documentation, _override_ task variables for the taks called directly via `Executor.Run(args ...string)`. This caused different behaviour in the "default" task v.s. other tasks. This commit ensures: - Priority order for variables is now according to the documentation, also for the "default" task. - Variables gets resolved in a particular order to ensure logical access to varaibles on template compile time, and that template compilation finds place _before_ resolution of dynamic variables. This change also allows the following to work: task: vars: A: "52" B: "{{.A}}" However, the following will always replace C with the uncompiled `{{.A}}`: task: vars: A: "52" C: "{{.B}}" B: "{{.A}}" Several tests have also been added to prevent this feature from breaking again. This should hopefully finally resolve issue #40.
56 lines
1.5 KiB
YAML
56 lines
1.5 KiB
YAML
default:
|
|
deps: [hello]
|
|
|
|
hello:
|
|
deps: [set-equal]
|
|
cmds:
|
|
- echo {{.FOO}} > foo.txt
|
|
- echo {{.BAR}} > bar.txt
|
|
- echo {{.BAZ}} > baz.txt
|
|
- echo '{{.TMPL_FOO}}' > tmpl_foo.txt
|
|
- echo '{{.TMPL_BAR}}' > tmpl_bar.txt
|
|
- echo '{{.TMPL_FOO2}}' > tmpl_foo2.txt
|
|
- echo '{{.TMPL_BAR2}}' > tmpl_bar2.txt
|
|
- echo '{{.SHTMPL_FOO}}' > shtmpl_foo.txt
|
|
- echo '{{.SHTMPL_FOO2}}' > shtmpl_foo2.txt
|
|
- echo '{{.NESTEDTMPL_FOO}}' > nestedtmpl_foo.txt
|
|
- echo '{{.NESTEDTMPL_FOO2}}' > nestedtmpl_foo2.txt
|
|
- echo {{.FOO2}} > foo2.txt
|
|
- echo {{.BAR2}} > bar2.txt
|
|
- echo {{.BAZ2}} > baz2.txt
|
|
- echo '{{.TMPL2_FOO}}' > tmpl2_foo.txt
|
|
- echo '{{.TMPL2_BAR}}' > tmpl2_bar.txt
|
|
- echo '{{.TMPL2_FOO2}}' > tmpl2_foo2.txt
|
|
- echo '{{.TMPL2_BAR2}}' > tmpl2_bar2.txt
|
|
- echo '{{.SHTMPL2_FOO}}' > shtmpl2_foo.txt
|
|
- echo '{{.SHTMPL2_FOO2}}' > shtmpl2_foo2.txt
|
|
- echo '{{.NESTEDTMPL2_FOO2}}' > nestedtmpl2_foo2.txt
|
|
- echo {{.EQUAL}} > equal.txt
|
|
- echo {{.OVERRIDE}} > override.txt
|
|
vars:
|
|
FOO: foo
|
|
BAR: $echo bar
|
|
BAZ:
|
|
sh: echo baz
|
|
TMPL_FOO: "{{.FOO}}"
|
|
TMPL_BAR: "{{.BAR}}"
|
|
TMPL_FOO2: "{{.FOO2}}"
|
|
TMPL_BAR2: "{{.BAR2}}"
|
|
SHTMPL_FOO:
|
|
sh: "echo '{{.FOO}}'"
|
|
SHTMPL_FOO2:
|
|
sh: "echo '{{.FOO2}}'"
|
|
NESTEDTMPL_FOO: "{{.TMPL_FOO}}"
|
|
NESTEDTMPL_FOO2: "{{.TMPL2_FOO2}}"
|
|
OVERRIDE: "bar"
|
|
|
|
set-equal:
|
|
set: EQUAL
|
|
cmds:
|
|
- echo foo=bar
|
|
|
|
invalid-var-tmpl:
|
|
vars:
|
|
CHARS: "abcd"
|
|
INVALID: "{{range .CHARS}}no end"
|