mirror of
https://github.com/go-task/task.git
synced 2025-03-19 21:17:46 +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
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := e.areTaskRequiredVarsSet(t, call); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
t, err = e.CompiledTask(call)
|
t, err = e.CompiledTask(call)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -202,10 +206,6 @@ func (e *Executor) RunTask(ctx context.Context, call *ast.Call) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := e.areTaskRequiredVarsSet(t, call); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
preCondMet, err := e.areTaskPreconditionsMet(ctx, t)
|
preCondMet, err := e.areTaskPreconditionsMet(ctx, t)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -199,6 +199,10 @@ func TestRequires(t *testing.T) {
|
|||||||
vars.Set("foo", ast.Var{Value: "one"})
|
vars.Set("foo", ast.Var{Value: "one"})
|
||||||
require.NoError(t, e.Run(context.Background(), &ast.Call{Task: "validation-var", Vars: vars}))
|
require.NoError(t, e.Run(context.Background(), &ast.Call{Task: "validation-var", Vars: vars}))
|
||||||
buff.Reset()
|
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) {
|
func TestSpecialVars(t *testing.T) {
|
||||||
|
9
testdata/requires/Taskfile.yml
vendored
9
testdata/requires/Taskfile.yml
vendored
@ -16,3 +16,12 @@ tasks:
|
|||||||
vars:
|
vars:
|
||||||
- name: foo
|
- name: foo
|
||||||
enum: ['one', 'two']
|
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