From c23c46e326dab2d250d7825d42a91ac46133aa7a Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Wed, 26 Feb 2025 17:49:05 +0100 Subject: [PATCH] fix: include with dynamic vars (#2092) --- task_test.go | 13 +++++++++++++ taskfile/ast/vars.go | 2 +- .../include_with_vars_inside_include/Taskfile.yml | 10 ++++++++++ .../include/Taskfile.include.yml | 1 + 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 testdata/include_with_vars_inside_include/Taskfile.yml create mode 100644 testdata/include_with_vars_inside_include/include/Taskfile.include.yml diff --git a/task_test.go b/task_test.go index 1ff73c23..ad594e5f 100644 --- a/task_test.go +++ b/task_test.go @@ -2477,6 +2477,19 @@ VAR_2 is included-default-var2 assert.Equal(t, strings.TrimSpace(buff.String()), expectedOutputOrder) } +func TestIncludeWithVarsInInclude(t *testing.T) { + t.Parallel() + + const dir = "testdata/include_with_vars_inside_include" + var buff bytes.Buffer + e := task.Executor{ + Dir: dir, + Stdout: &buff, + Stderr: &buff, + } + require.NoError(t, e.Setup()) +} + func TestIncludedVarsMultiLevel(t *testing.T) { t.Parallel() diff --git a/taskfile/ast/vars.go b/taskfile/ast/vars.go index f6203464..0271ee5c 100644 --- a/taskfile/ast/vars.go +++ b/taskfile/ast/vars.go @@ -105,7 +105,7 @@ func (vars *Vars) ToCacheMap() (m map[string]any) { if v.Sh != nil && *v.Sh != "" { // Dynamic variable is not yet resolved; trigger // to be used in templates. - return nil + continue } if v.Live != nil { m[k] = v.Live diff --git a/testdata/include_with_vars_inside_include/Taskfile.yml b/testdata/include_with_vars_inside_include/Taskfile.yml new file mode 100644 index 00000000..36e45187 --- /dev/null +++ b/testdata/include_with_vars_inside_include/Taskfile.yml @@ -0,0 +1,10 @@ +version: "3" + +vars: + INCLUDE: include + FOO: + sh : echo bar + +includes: + included1: + taskfile: '{{.INCLUDE}}/Taskfile.include.yml' diff --git a/testdata/include_with_vars_inside_include/include/Taskfile.include.yml b/testdata/include_with_vars_inside_include/include/Taskfile.include.yml new file mode 100644 index 00000000..5db6fe96 --- /dev/null +++ b/testdata/include_with_vars_inside_include/include/Taskfile.include.yml @@ -0,0 +1 @@ +version: "3"