mirror of
https://github.com/go-task/task.git
synced 2024-12-16 10:59:23 +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.
38 lines
1.1 KiB
YAML
38 lines
1.1 KiB
YAML
default:
|
|
vars:
|
|
SPANISH: ¡Holla mundo!
|
|
PORTUGUESE: "{{.PORTUGUESE_HELLO_WORLD}}"
|
|
GERMAN: "Welt!"
|
|
deps:
|
|
- task: write-file
|
|
vars: {CONTENT: Dependence1, FILE: dep1.txt}
|
|
- task: write-file
|
|
vars: {CONTENT: Dependence2, FILE: dep2.txt}
|
|
- task: write-file
|
|
vars: {CONTENT: "{{.SPANISH|replace \"mundo\" \"dependencia\"}}", FILE: spanish-dep.txt}
|
|
cmds:
|
|
- task: write-file
|
|
vars: {CONTENT: Hello, FILE: hello.txt}
|
|
- task: write-file
|
|
vars: {CONTENT: "$echo 'World'", FILE: world.txt}
|
|
- task: write-file
|
|
vars: {CONTENT: "!", FILE: exclamation.txt}
|
|
- task: write-file
|
|
vars: {CONTENT: "{{.SPANISH}}", FILE: spanish.txt}
|
|
- task: write-file
|
|
vars: {CONTENT: "{{.PORTUGUESE}}", FILE: portuguese.txt}
|
|
- task: write-file
|
|
vars: {CONTENT: "{{.GERMAN}}", FILE: german.txt}
|
|
- task: non-default
|
|
|
|
write-file:
|
|
cmds:
|
|
- echo {{.CONTENT}} > {{.FILE}}
|
|
|
|
non-default:
|
|
vars:
|
|
PORTUGUESE: "{{.PORTUGUESE_HELLO_WORLD}}"
|
|
cmds:
|
|
- task: write-file
|
|
vars: {CONTENT: "{{.PORTUGUESE}}", FILE: portuguese2.txt}
|