Skip to content

Commit 95b75c5

Browse files
committed
Fix issue on running dependencies or tasks on included Taskfiles
Fixes #151
1 parent a9b1f38 commit 95b75c5

File tree

5 files changed

+53
-0
lines changed

5 files changed

+53
-0
lines changed

internal/taskfile/merge.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,20 @@ func Merge(t1, t2 *Taskfile, namespaces ...string) error {
3939
t1.Tasks = make(Tasks)
4040
}
4141
for k, v := range t2.Tasks {
42+
// FIXME(@andreynering): Refactor this block, otherwise we can
43+
// have serious side-effects in the future, since we're editing
44+
// the original references instead of deep copying them.
45+
4246
t1.Tasks[taskNameWithNamespace(k, namespaces...)] = v
47+
48+
for _, dep := range v.Deps {
49+
dep.Task = taskNameWithNamespace(dep.Task, namespaces...)
50+
}
51+
for _, cmd := range v.Cmds {
52+
if cmd.Task != "" {
53+
cmd.Task = taskNameWithNamespace(cmd.Task, namespaces...)
54+
}
55+
}
4356
}
4457

4558
return nil

task_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,3 +496,17 @@ func TestIncludesEmptyMain(t *testing.T) {
496496
}
497497
tt.Run(t)
498498
}
499+
500+
func TestIncludesDependencies(t *testing.T) {
501+
tt := fileContentTest{
502+
Dir: "testdata/includes_deps",
503+
Target: "default",
504+
TrimSpace: true,
505+
Files: map[string]string{
506+
"default.txt": "default",
507+
"called_dep.txt": "called_dep",
508+
"called_task.txt": "called_task",
509+
},
510+
}
511+
tt.Run(t)
512+
}

testdata/includes_deps/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.txt
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version: '2'
2+
3+
includes:
4+
included: Taskfile2.yml
5+
6+
tasks:
7+
default:
8+
cmds:
9+
- task: included:default
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
version: '2'
2+
3+
tasks:
4+
default:
5+
deps: [called_dep]
6+
cmds:
7+
- echo "default" > default.txt
8+
- task: called_task
9+
10+
called_dep:
11+
cmds:
12+
- echo "called_dep" > called_dep.txt
13+
14+
called_task:
15+
cmds:
16+
- echo "called_task" > called_task.txt

0 commit comments

Comments
 (0)