diff --git a/task_test.go b/task_test.go index 051e186b3b..7acfe383e6 100644 --- a/task_test.go +++ b/task_test.go @@ -2,6 +2,7 @@ package task_test import ( "bytes" + "cmp" "context" "fmt" "io" @@ -134,8 +135,7 @@ func TestEnv(t *testing.T) { }, } tt.Run(t) - t.Setenv("TASK_X_ENV_PRECEDENCE", "1") - experiments.EnvPrecedence = experiments.New("ENV_PRECEDENCE") + enableExperimentForTest(t, &experiments.EnvPrecedence, "1") ttt := fileContentTest{ Dir: "testdata/env", Target: "overridden", @@ -3207,6 +3207,110 @@ func TestReference(t *testing.T) { } } +func TestVarInheritance(t *testing.T) { + enableExperimentForTest(t, &experiments.EnvPrecedence, "1") + tests := []struct { + name string + want string + call string + }{ + { + name: "shell", + want: "shell\nshell\n", + }, + { + name: "entrypoint-global-dotenv", + want: "entrypoint-global-dotenv\nentrypoint-global-dotenv\n", + }, + { + name: "entrypoint-global-vars", + want: "entrypoint-global-vars\nentrypoint-global-vars\n", + }, + { + // We can't send env vars to a called task, so the env var is not overridden + name: "entrypoint-task-call-vars", + want: "entrypoint-task-call-vars\nentrypoint-global-vars\n", + }, + { + // Dotenv doesn't set variables + name: "entrypoint-task-call-dotenv", + want: "entrypoint-task-call-vars\nentrypoint-task-call-dotenv\n", + }, + { + name: "entrypoint-task-call-task-vars", + want: "entrypoint-task-call-task-vars\nentrypoint-task-call-task-vars\n", + }, + { + // Dotenv doesn't set variables + name: "entrypoint-task-dotenv", + want: "entrypoint-global-vars\nentrypoint-task-dotenv\n", + }, + { + name: "entrypoint-task-vars", + want: "entrypoint-task-vars\nentrypoint-task-vars\n", + }, + // { + // // Dotenv not currently allowed in included taskfiles + // name: "included-global-dotenv", + // want: "included-global-dotenv\nincluded-global-dotenv\n", + // }, + { + name: "included-global-vars", + want: "included-global-vars\nincluded-global-vars\n", + call: "included", + }, + { + // We can't send env vars to a called task, so the env var is not overridden + name: "included-task-call-vars", + want: "included-task-call-vars\nincluded-global-vars\n", + call: "included", + }, + { + // Dotenv doesn't set variables + // Dotenv not currently allowed in included taskfiles (but doesn't error in a task) + name: "included-task-call-dotenv", + want: "included-task-call-vars\nincluded-global-vars\n", + call: "included", + }, + { + name: "included-task-call-task-vars", + want: "included-task-call-task-vars\nincluded-task-call-task-vars\n", + call: "included", + }, + { + // Dotenv doesn't set variables + // Somehow dotenv is working here! + name: "included-task-dotenv", + want: "included-global-vars\nincluded-task-dotenv\n", + call: "included", + }, + { + name: "included-task-vars", + want: "included-task-vars\nincluded-task-vars\n", + call: "included", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + var buff bytes.Buffer + t.Setenv("VAR", "shell") + t.Setenv("ENV", "shell") + e := task.Executor{ + Dir: fmt.Sprintf("testdata/var_inheritance/v3/%s", test.name), + Stdout: &buff, + Stderr: &buff, + Silent: true, + Force: true, + } + call := cmp.Or(test.call, "default") + require.NoError(t, e.Setup()) + require.NoError(t, e.Run(context.Background(), &ast.Call{Task: call})) + assert.Equal(t, test.want, buff.String()) + }) + } +} + // enableExperimentForTest enables the experiment behind pointer e for the duration of test t and sub-tests, // with the experiment being restored to its previous state when tests complete. // diff --git a/testdata/var_inheritance/v3/entrypoint-global-dotenv/Taskfile.yml b/testdata/var_inheritance/v3/entrypoint-global-dotenv/Taskfile.yml new file mode 100644 index 0000000000..07b43b79df --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-global-dotenv/Taskfile.yml @@ -0,0 +1,11 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' + +tasks: + default: + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/entrypoint-global-dotenv/global.env b/testdata/var_inheritance/v3/entrypoint-global-dotenv/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-global-dotenv/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-global-vars/Taskfile.yml b/testdata/var_inheritance/v3/entrypoint-global-vars/Taskfile.yml new file mode 100644 index 0000000000..88bbe07526 --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-global-vars/Taskfile.yml @@ -0,0 +1,15 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +tasks: + default: + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/entrypoint-global-vars/global.env b/testdata/var_inheritance/v3/entrypoint-global-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-global-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/Taskfile.yml b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/Taskfile.yml new file mode 100644 index 0000000000..027b9749e7 --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/Taskfile.yml @@ -0,0 +1,25 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - task: called-task + vars: + VAR: entrypoint-task-call-vars + + called-task: + dotenv: + - 'called-task.env' + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/called-task.env b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/called-task.env new file mode 100644 index 0000000000..6ffdc672f5 --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/called-task.env @@ -0,0 +1,2 @@ +VAR=entrypoint-task-call-dotenv +ENV=entrypoint-task-call-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/global.env b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/task.env b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/task.env new file mode 100644 index 0000000000..869cb6209b --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-dotenv/task.env @@ -0,0 +1,2 @@ +VAR=entrypoint-task-dotenv +ENV=entrypoint-task-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/Taskfile.yml b/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/Taskfile.yml new file mode 100644 index 0000000000..5b3b062cd2 --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/Taskfile.yml @@ -0,0 +1,27 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - task: called-task + vars: + VAR: entrypoint-task-call-vars + + called-task: + vars: + VAR: entrypoint-task-call-task-vars + env: + ENV: entrypoint-task-call-task-vars + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/global.env b/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/task.env b/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/task.env new file mode 100644 index 0000000000..869cb6209b --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-task-vars/task.env @@ -0,0 +1,2 @@ +VAR=entrypoint-task-dotenv +ENV=entrypoint-task-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-vars/Taskfile.yml b/testdata/var_inheritance/v3/entrypoint-task-call-vars/Taskfile.yml new file mode 100644 index 0000000000..abc6ee6658 --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-vars/Taskfile.yml @@ -0,0 +1,23 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - task: called-task + vars: + VAR: entrypoint-task-call-vars + + called-task: + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-vars/global.env b/testdata/var_inheritance/v3/entrypoint-task-call-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-call-vars/task.env b/testdata/var_inheritance/v3/entrypoint-task-call-vars/task.env new file mode 100644 index 0000000000..869cb6209b --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-call-vars/task.env @@ -0,0 +1,2 @@ +VAR=entrypoint-task-dotenv +ENV=entrypoint-task-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-dotenv/Taskfile.yml b/testdata/var_inheritance/v3/entrypoint-task-dotenv/Taskfile.yml new file mode 100644 index 0000000000..65f4752e05 --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-dotenv/Taskfile.yml @@ -0,0 +1,17 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/entrypoint-task-dotenv/global.env b/testdata/var_inheritance/v3/entrypoint-task-dotenv/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-dotenv/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-dotenv/task.env b/testdata/var_inheritance/v3/entrypoint-task-dotenv/task.env new file mode 100644 index 0000000000..869cb6209b --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-dotenv/task.env @@ -0,0 +1,2 @@ +VAR=entrypoint-task-dotenv +ENV=entrypoint-task-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-vars/Taskfile.yml b/testdata/var_inheritance/v3/entrypoint-task-vars/Taskfile.yml new file mode 100644 index 0000000000..74c7a7a0ce --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-vars/Taskfile.yml @@ -0,0 +1,21 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +tasks: + default: + dotenv: + - 'task.env' + vars: + VAR: entrypoint-task-vars + env: + ENV: entrypoint-task-vars + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/entrypoint-task-vars/global.env b/testdata/var_inheritance/v3/entrypoint-task-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/entrypoint-task-vars/task.env b/testdata/var_inheritance/v3/entrypoint-task-vars/task.env new file mode 100644 index 0000000000..869cb6209b --- /dev/null +++ b/testdata/var_inheritance/v3/entrypoint-task-vars/task.env @@ -0,0 +1,2 @@ +VAR=entrypoint-task-dotenv +ENV=entrypoint-task-dotenv diff --git a/testdata/var_inheritance/v3/included-global-vars/Taskfile.yml b/testdata/var_inheritance/v3/included-global-vars/Taskfile.yml new file mode 100644 index 0000000000..b5e103e581 --- /dev/null +++ b/testdata/var_inheritance/v3/included-global-vars/Taskfile.yml @@ -0,0 +1,12 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +includes: + included: included.yml diff --git a/testdata/var_inheritance/v3/included-global-vars/global.env b/testdata/var_inheritance/v3/included-global-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/included-global-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/included-global-vars/included.yml b/testdata/var_inheritance/v3/included-global-vars/included.yml new file mode 100644 index 0000000000..9632ddf879 --- /dev/null +++ b/testdata/var_inheritance/v3/included-global-vars/included.yml @@ -0,0 +1,13 @@ +version: '3' + +silent: true +vars: + VAR: included-global-vars +env: + ENV: included-global-vars + +tasks: + default: + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/included-task-call-dotenv/Taskfile.yml b/testdata/var_inheritance/v3/included-task-call-dotenv/Taskfile.yml new file mode 100644 index 0000000000..b5e103e581 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-dotenv/Taskfile.yml @@ -0,0 +1,12 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +includes: + included: included.yml diff --git a/testdata/var_inheritance/v3/included-task-call-dotenv/global.env b/testdata/var_inheritance/v3/included-task-call-dotenv/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-dotenv/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/included-task-call-dotenv/included.yml b/testdata/var_inheritance/v3/included-task-call-dotenv/included.yml new file mode 100644 index 0000000000..94f2740047 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-dotenv/included.yml @@ -0,0 +1,21 @@ +version: '3' + +silent: true +vars: + VAR: included-global-vars +env: + ENV: included-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - task: called-task + vars: + VAR: included-task-call-vars + + called-task: + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/included-task-call-dotenv/task.env b/testdata/var_inheritance/v3/included-task-call-dotenv/task.env new file mode 100644 index 0000000000..109f2b8617 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-dotenv/task.env @@ -0,0 +1,2 @@ +VAR=included-task-dotenv +ENV=included-task-dotenv diff --git a/testdata/var_inheritance/v3/included-task-call-task-vars/Taskfile.yml b/testdata/var_inheritance/v3/included-task-call-task-vars/Taskfile.yml new file mode 100644 index 0000000000..b5e103e581 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-task-vars/Taskfile.yml @@ -0,0 +1,12 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +includes: + included: included.yml diff --git a/testdata/var_inheritance/v3/included-task-call-task-vars/global.env b/testdata/var_inheritance/v3/included-task-call-task-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-task-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/included-task-call-task-vars/included.yml b/testdata/var_inheritance/v3/included-task-call-task-vars/included.yml new file mode 100644 index 0000000000..0ae0b14d73 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-task-vars/included.yml @@ -0,0 +1,25 @@ +version: '3' + +silent: true +vars: + VAR: included-global-vars +env: + ENV: included-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - task: called-task + vars: + VAR: included-task-call-vars + + called-task: + vars: + VAR: included-task-call-task-vars + env: + ENV: included-task-call-task-vars + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/included-task-call-task-vars/task.env b/testdata/var_inheritance/v3/included-task-call-task-vars/task.env new file mode 100644 index 0000000000..109f2b8617 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-task-vars/task.env @@ -0,0 +1,2 @@ +VAR=included-task-dotenv +ENV=included-task-dotenv diff --git a/testdata/var_inheritance/v3/included-task-call-vars/Taskfile.yml b/testdata/var_inheritance/v3/included-task-call-vars/Taskfile.yml new file mode 100644 index 0000000000..b5e103e581 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-vars/Taskfile.yml @@ -0,0 +1,12 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +includes: + included: included.yml diff --git a/testdata/var_inheritance/v3/included-task-call-vars/global.env b/testdata/var_inheritance/v3/included-task-call-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/included-task-call-vars/included.yml b/testdata/var_inheritance/v3/included-task-call-vars/included.yml new file mode 100644 index 0000000000..94f2740047 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-vars/included.yml @@ -0,0 +1,21 @@ +version: '3' + +silent: true +vars: + VAR: included-global-vars +env: + ENV: included-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - task: called-task + vars: + VAR: included-task-call-vars + + called-task: + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/included-task-call-vars/task.env b/testdata/var_inheritance/v3/included-task-call-vars/task.env new file mode 100644 index 0000000000..109f2b8617 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-call-vars/task.env @@ -0,0 +1,2 @@ +VAR=included-task-dotenv +ENV=included-task-dotenv diff --git a/testdata/var_inheritance/v3/included-task-dotenv/Taskfile.yml b/testdata/var_inheritance/v3/included-task-dotenv/Taskfile.yml new file mode 100644 index 0000000000..b5e103e581 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-dotenv/Taskfile.yml @@ -0,0 +1,12 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +includes: + included: included.yml diff --git a/testdata/var_inheritance/v3/included-task-dotenv/global.env b/testdata/var_inheritance/v3/included-task-dotenv/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-dotenv/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/included-task-dotenv/included.yml b/testdata/var_inheritance/v3/included-task-dotenv/included.yml new file mode 100644 index 0000000000..a88a5885e3 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-dotenv/included.yml @@ -0,0 +1,15 @@ +version: '3' + +silent: true +vars: + VAR: included-global-vars +env: + ENV: included-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/included-task-dotenv/task.env b/testdata/var_inheritance/v3/included-task-dotenv/task.env new file mode 100644 index 0000000000..109f2b8617 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-dotenv/task.env @@ -0,0 +1,2 @@ +VAR=included-task-dotenv +ENV=included-task-dotenv diff --git a/testdata/var_inheritance/v3/included-task-vars/Taskfile.yml b/testdata/var_inheritance/v3/included-task-vars/Taskfile.yml new file mode 100644 index 0000000000..b5e103e581 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-vars/Taskfile.yml @@ -0,0 +1,12 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +includes: + included: included.yml diff --git a/testdata/var_inheritance/v3/included-task-vars/global.env b/testdata/var_inheritance/v3/included-task-vars/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-vars/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/included-task-vars/included.yml b/testdata/var_inheritance/v3/included-task-vars/included.yml new file mode 100644 index 0000000000..280cd0b8b3 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-vars/included.yml @@ -0,0 +1,19 @@ +version: '3' + +silent: true +vars: + VAR: included-global-vars +env: + ENV: included-global-vars + +tasks: + default: + dotenv: + - 'task.env' + vars: + VAR: included-task-vars + env: + ENV: included-task-vars + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/included-task-vars/task.env b/testdata/var_inheritance/v3/included-task-vars/task.env new file mode 100644 index 0000000000..109f2b8617 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task-vars/task.env @@ -0,0 +1,2 @@ +VAR=included-task-dotenv +ENV=included-task-dotenv diff --git a/testdata/var_inheritance/v3/included-task/Taskfile.yml b/testdata/var_inheritance/v3/included-task/Taskfile.yml new file mode 100644 index 0000000000..b5e103e581 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task/Taskfile.yml @@ -0,0 +1,12 @@ +version: '3' + +silent: true +dotenv: + - 'global.env' +vars: + VAR: entrypoint-global-vars +env: + ENV: entrypoint-global-vars + +includes: + included: included.yml diff --git a/testdata/var_inheritance/v3/included-task/global.env b/testdata/var_inheritance/v3/included-task/global.env new file mode 100644 index 0000000000..44581a28de --- /dev/null +++ b/testdata/var_inheritance/v3/included-task/global.env @@ -0,0 +1,2 @@ +VAR=entrypoint-global-dotenv +ENV=entrypoint-global-dotenv diff --git a/testdata/var_inheritance/v3/included-task/included.yml b/testdata/var_inheritance/v3/included-task/included.yml new file mode 100644 index 0000000000..a88a5885e3 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task/included.yml @@ -0,0 +1,15 @@ +version: '3' + +silent: true +vars: + VAR: included-global-vars +env: + ENV: included-global-vars + +tasks: + default: + dotenv: + - 'task.env' + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"' diff --git a/testdata/var_inheritance/v3/included-task/task.env b/testdata/var_inheritance/v3/included-task/task.env new file mode 100644 index 0000000000..109f2b8617 --- /dev/null +++ b/testdata/var_inheritance/v3/included-task/task.env @@ -0,0 +1,2 @@ +VAR=included-task-dotenv +ENV=included-task-dotenv diff --git a/testdata/var_inheritance/v3/shell/Taskfile.yml b/testdata/var_inheritance/v3/shell/Taskfile.yml new file mode 100644 index 0000000000..aa5c28cbd9 --- /dev/null +++ b/testdata/var_inheritance/v3/shell/Taskfile.yml @@ -0,0 +1,9 @@ +version: '3' + +silent: true + +tasks: + default: + cmds: + - 'echo "{{.VAR}}"' + - 'echo "$ENV"'