mirror of
https://github.com/go-task/task.git
synced 2025-03-17 21:08:01 +02:00
fix: interpolate vars in defer (#1814)
Co-authored-by: Andrey Nering <andreynering@users.noreply.github.com>
This commit is contained in:
parent
0be05795b9
commit
1bf850592c
7
task.go
7
task.go
@ -324,8 +324,13 @@ func (e *Executor) runDeferred(t *ast.Task, call *ast.Call, i int, deferredExitC
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
origTask, err := e.GetTask(call)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
cmd := t.Cmds[i]
|
||||
vars, _ := e.Compiler.FastGetVariables(t, call)
|
||||
vars, _ := e.Compiler.FastGetVariables(origTask, call)
|
||||
cache := &templater.Cache{Vars: vars}
|
||||
extra := map[string]any{}
|
||||
|
||||
|
@ -1788,7 +1788,7 @@ func TestExitCodeZero(t *testing.T) {
|
||||
require.NoError(t, e.Setup())
|
||||
|
||||
require.NoError(t, e.Run(context.Background(), &ast.Call{Task: "exit-zero"}))
|
||||
assert.Equal(t, "EXIT_CODE=", strings.TrimSpace(buff.String()))
|
||||
assert.Equal(t, "FOO=bar - EXIT_CODE=", strings.TrimSpace(buff.String()))
|
||||
}
|
||||
|
||||
func TestExitCodeOne(t *testing.T) {
|
||||
@ -1802,7 +1802,7 @@ func TestExitCodeOne(t *testing.T) {
|
||||
require.NoError(t, e.Setup())
|
||||
|
||||
require.Error(t, e.Run(context.Background(), &ast.Call{Task: "exit-one"}))
|
||||
assert.Equal(t, "EXIT_CODE=1", strings.TrimSpace(buff.String()))
|
||||
assert.Equal(t, "FOO=bar - EXIT_CODE=1", strings.TrimSpace(buff.String()))
|
||||
}
|
||||
|
||||
func TestIgnoreNilElements(t *testing.T) {
|
||||
|
8
testdata/exit_code/Taskfile.yml
vendored
8
testdata/exit_code/Taskfile.yml
vendored
@ -7,11 +7,15 @@ vars:
|
||||
|
||||
tasks:
|
||||
exit-zero:
|
||||
vars:
|
||||
FOO: bar
|
||||
cmds:
|
||||
- defer: echo {{.PREFIX}}{{.EXIT_CODE}}
|
||||
- defer: echo FOO={{.FOO}} - {{.PREFIX}}{{.EXIT_CODE}}
|
||||
- exit 0
|
||||
|
||||
exit-one:
|
||||
vars:
|
||||
FOO: bar
|
||||
cmds:
|
||||
- defer: echo {{.PREFIX}}{{.EXIT_CODE}}
|
||||
- defer: echo FOO={{.FOO}} - {{.PREFIX}}{{.EXIT_CODE}}
|
||||
- exit 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user