mirror of
https://github.com/go-task/task.git
synced 2026-02-24 03:59:52 +01:00
fix: Call ReplaceVars() to resolve Ref's for imported global vars. (#2632)
This commit is contained in:
@@ -114,6 +114,9 @@ func (c *Compiler) getVariables(t *ast.Task, call *Call, evaluateShVars bool) (*
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
// Resolve any outstanding 'Ref' values in global vars (esp. globals from imported Taskfiles).
|
||||
c.TaskfileVars = templater.ReplaceVars(c.TaskfileVars, &templater.Cache{Vars: result})
|
||||
|
||||
if t != nil {
|
||||
for k, v := range t.IncludeVars.All() {
|
||||
if err := rangeFunc(k, v); err != nil {
|
||||
|
||||
@@ -927,6 +927,10 @@ func TestReference(t *testing.T) {
|
||||
name: "reference using templating resolver and dynamic var",
|
||||
call: "ref-resolver-sh",
|
||||
},
|
||||
{
|
||||
name: "reference using templating resolver and global var",
|
||||
call: "ref-global",
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
|
||||
14
testdata/var_references/Taskfile.yml
vendored
14
testdata/var_references/Taskfile.yml
vendored
@@ -2,6 +2,9 @@ version: '3'
|
||||
|
||||
vars:
|
||||
GLOBAL_VAR: [1, 2, 2, 2, 3, 3, 4, 5]
|
||||
GLOBAL_FOO:
|
||||
ref: .GLOBAL_BAR
|
||||
GLOBAL_BAR: bar
|
||||
|
||||
tasks:
|
||||
default:
|
||||
@@ -9,6 +12,7 @@ tasks:
|
||||
- task: ref-dep
|
||||
- task: ref-resolver
|
||||
- task: ref-resolver-sh
|
||||
- task: ref-global
|
||||
|
||||
ref-cmd:
|
||||
vars:
|
||||
@@ -72,3 +76,13 @@ tasks:
|
||||
{{- else}} and {{$child.name -}}
|
||||
{{- end -}}
|
||||
{{- end -}}"
|
||||
|
||||
ref-global:
|
||||
vars:
|
||||
TASK_FUBAR:
|
||||
ref: .GLOBAL_FOO
|
||||
cmds:
|
||||
- echo "GLOBAL_FOO={{.GLOBAL_FOO}}"
|
||||
- echo "GLOBAL_BAR={{.GLOBAL_BAR}}"
|
||||
- echo "TASK_FUBAR={{.TASK_FUBAR}}"
|
||||
silent: true
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
GLOBAL_FOO=bar
|
||||
GLOBAL_BAR=bar
|
||||
TASK_FUBAR=bar
|
||||
Reference in New Issue
Block a user