Skip to content

Commit 0e2c9cc

Browse files
authored
fix: include flatten with a default task (#1778)
1 parent dd9cec6 commit 0e2c9cc

File tree

4 files changed

+12
-5
lines changed

4 files changed

+12
-5
lines changed

task_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1240,6 +1240,8 @@ func TestIncludesFlatten(t *testing.T) {
12401240
expectedOutput string
12411241
}{
12421242
{name: "included flatten", taskfile: "Taskfile.yml", task: "gen", expectedOutput: "gen from included\n"},
1243+
{name: "included flatten with default", taskfile: "Taskfile.yml", task: "default", expectedOutput: "default from included flatten\n"},
1244+
{name: "included flatten can call entrypoint tasks", taskfile: "Taskfile.yml", task: "from_entrypoint", expectedOutput: "from entrypoint\n"},
12431245
{name: "included flatten with deps", taskfile: "Taskfile.yml", task: "with_deps", expectedOutput: "gen from included\nwith_deps from included\n"},
12441246
{name: "included flatten nested", taskfile: "Taskfile.yml", task: "from_nested", expectedOutput: "from nested\n"},
12451247
{name: "included flatten multiple same task", taskfile: "Taskfile.multiple.yml", task: "gen", expectedErr: true, expectedOutput: "task: Found multiple tasks (gen) included by \"included\"\""},

taskfile/ast/tasks.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,12 @@ func (t1 *Tasks) Merge(t2 Tasks, include *Include, includedTaskfileVars *Vars) e
112112
return nil
113113
})
114114

115-
// If the included Taskfile has a default task and the parent namespace has
115+
// If the included Taskfile has a default task, being not flattened and the parent namespace has
116116
// no task with a matching name, we can add an alias so that the user can
117117
// run the included Taskfile's default task without specifying its full
118118
// name. If the parent namespace has aliases, we add another alias for each
119119
// of them.
120-
if t2.Get("default") != nil && t1.Get(include.Namespace) == nil {
120+
if t2.Get("default") != nil && t1.Get(include.Namespace) == nil && !include.Flatten {
121121
defaultTaskName := fmt.Sprintf("%s:default", include.Namespace)
122122
t1.Get(defaultTaskName).Aliases = append(t1.Get(defaultTaskName).Aliases, include.Namespace)
123123
t1.Get(defaultTaskName).Aliases = slices.Concat(t1.Get(defaultTaskName).Aliases, include.Aliases)
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version: '3'
2+
tasks:
3+
default: echo "default from included flatten"

testdata/includes_flatten/Taskfile.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@ includes:
55
taskfile: ./included
66
dir: ./included
77
flatten: true
8+
with_default:
9+
taskfile: ./Taskfile.with_default.yml
10+
flatten: true
811

912
tasks:
10-
default:
11-
cmds:
12-
- echo root_directory > root_directory.txt
13+
from_entrypoint: echo "from entrypoint"
14+
1315

0 commit comments

Comments
 (0)