Skip to content

Commit

Permalink
fix: included variable merging
Browse files Browse the repository at this point in the history
  • Loading branch information
pd93 committed May 12, 2024
1 parent 8266b28 commit 1261272
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 1 deletion.
28 changes: 28 additions & 0 deletions task_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1237,6 +1237,34 @@ func TestIncludesInterpolation(t *testing.T) {
}
}

func TestIncludedTaskfileVarMerging(t *testing.T) {
const dir = "testdata/included_taskfile_var_merging"
tests := []struct {
name string
task string
expectedOutput string
}{
{"foo", "foo:pwd", "included_taskfile_var_merging/foo\n"},
{"bar", "bar:pwd", "included_taskfile_var_merging/bar\n"},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
var buff bytes.Buffer
e := task.Executor{
Dir: dir,
Stdout: &buff,
Stderr: &buff,
Silent: true,
}
require.NoError(t, e.Setup())

err := e.Run(context.Background(), &ast.Call{Task: test.task})
require.NoError(t, err)
assert.Contains(t, buff.String(), test.expectedOutput)
})
}
}

func TestInternalTask(t *testing.T) {
const dir = "testdata/internal_task"
tests := []struct {
Expand Down
2 changes: 1 addition & 1 deletion taskfile/ast/tasks.go
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ func (t1 *Tasks) Merge(t2 Tasks, include *Include, includedTaskfileVars *Vars) {
task.IncludeVars = &Vars{}
}
task.IncludeVars.Merge(include.Vars, nil)
task.IncludedTaskfileVars = includedTaskfileVars
task.IncludedTaskfileVars = includedTaskfileVars.DeepCopy()
}

// Add the task to the merged taskfile
Expand Down
12 changes: 12 additions & 0 deletions testdata/included_taskfile_var_merging/Taskfile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: "3"

includes:
foo:
taskfile: ./foo/Taskfile.yaml
bar:
taskfile: ./bar/Taskfile.yaml

tasks:
stub:
cmds:
- echo 0
11 changes: 11 additions & 0 deletions testdata/included_taskfile_var_merging/bar/Taskfile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: "3"

vars:
DIR: bar

tasks:
pwd:
dir: ./{{ .DIR }}
cmds:
- echo "{{ .DIR }}"
- pwd
11 changes: 11 additions & 0 deletions testdata/included_taskfile_var_merging/foo/Taskfile.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: "3"

vars:
DIR: foo

tasks:
pwd:
dir: ./{{ .DIR }}
cmds:
- echo "{{ .DIR }}"
- pwd

0 comments on commit 1261272

Please sign in to comment.