mirror of
https://github.com/go-task/task.git
synced 2025-03-17 21:08:01 +02:00
fix: evaluate requires before compiled task (#1962)
This commit is contained in:
parent
d1f18d36b8
commit
d64df3f9d7
8
task.go
8
task.go
@ -176,6 +176,10 @@ func (e *Executor) RunTask(ctx context.Context, call *ast.Call) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
if err := e.areTaskRequiredVarsSet(t, call); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
t, err = e.CompiledTask(call)
|
||||
if err != nil {
|
||||
return err
|
||||
@ -202,10 +206,6 @@ func (e *Executor) RunTask(ctx context.Context, call *ast.Call) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if err := e.areTaskRequiredVarsSet(t, call); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
preCondMet, err := e.areTaskPreconditionsMet(ctx, t)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -199,6 +199,10 @@ func TestRequires(t *testing.T) {
|
||||
vars.Set("foo", ast.Var{Value: "one"})
|
||||
require.NoError(t, e.Run(context.Background(), &ast.Call{Task: "validation-var", Vars: vars}))
|
||||
buff.Reset()
|
||||
|
||||
require.NoError(t, e.Setup())
|
||||
require.ErrorContains(t, e.Run(context.Background(), &ast.Call{Task: "require-before-compile"}), "task: Task \"require-before-compile\" cancelled because it is missing required variables: MY_VAR")
|
||||
buff.Reset()
|
||||
}
|
||||
|
||||
func TestSpecialVars(t *testing.T) {
|
||||
|
9
testdata/requires/Taskfile.yml
vendored
9
testdata/requires/Taskfile.yml
vendored
@ -16,3 +16,12 @@ tasks:
|
||||
vars:
|
||||
- name: foo
|
||||
enum: ['one', 'two']
|
||||
|
||||
|
||||
require-before-compile:
|
||||
requires:
|
||||
vars: [ MY_VAR ]
|
||||
cmd: |
|
||||
{{range .MY_VAR | splitList " " }}
|
||||
echo {{.}}
|
||||
{{end}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user