mirror of
https://github.com/go-task/task.git
synced 2025-01-12 04:34:11 +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.
13 lines
233 B
YAML
13 lines
233 B
YAML
FOO2: foo2
|
|
BAR2: $echo bar2
|
|
BAZ2:
|
|
sh: echo baz2
|
|
TMPL2_FOO: "{{.FOO}}"
|
|
TMPL2_BAR: "{{.BAR}}"
|
|
TMPL2_FOO2: "{{.FOO2}}"
|
|
TMPL2_BAR2: "{{.BAR2}}"
|
|
SHTMPL2_FOO2:
|
|
sh: "echo '{{.FOO2}}'"
|
|
NESTEDTMPL2_FOO2: "{{.TMPL2_FOO2}}"
|
|
OVERRIDE: "foo"
|