Fix: regression run after failure (#971)

* Fix: Regressions of run step after failure

* Add test, to enshure no panic

* Print error of failed step
This commit is contained in:
ChristopherHX authored and GitHub committed 2022-01-27 16:20:44 +00:00
1 parent 557dc755b8
commit 7dbf3fcb96
4 files changed
+37 -6

No files matched your search

+24 -2
View File
@@ -261,7 +261,18 @@ func (rc *RunContext) Executor() common.Executor {
if step.ID == "" {
step.ID = fmt.Sprintf("%d", i)
}
steps = append(steps, rc.newStepExecutor(step))
stepExec := rc.newStepExecutor(step)
steps = append(steps, func(ctx context.Context) error {
err := stepExec(ctx)
if err != nil {
common.Logger(ctx).Errorf("%v", err)
common.SetJobError(ctx, err)
} else if ctx.Err() != nil {
common.Logger(ctx).Errorf("%v", ctx.Err())
common.SetJobError(ctx, ctx.Err())
}
return nil
})
}
steps = append(steps, func(ctx context.Context) error {
err := rc.stopJobContainer()(ctx)
@@ -295,7 +306,18 @@ func (rc *RunContext) CompositeExecutor() common.Executor {
step.ID = fmt.Sprintf("%d", i)
}
stepcopy := step
steps = append(steps, rc.newStepExecutor(&stepcopy))
stepExec := rc.newStepExecutor(&stepcopy)
steps = append(steps, func(ctx context.Context) error {
err := stepExec(ctx)
if err != nil {
common.Logger(ctx).Errorf("%v", err)
common.SetJobError(ctx, err)
} else if ctx.Err() != nil {
common.Logger(ctx).Errorf("%v", ctx.Err())
common.SetJobError(ctx, ctx.Err())
}
return nil
})
}
steps = append(steps, common.JobError)