From c5660995f57e77568444f04830bfe20555da1609 Mon Sep 17 00:00:00 2001 From: Sam Alba Date: Wed, 9 Mar 2022 16:26:39 -0800 Subject: [PATCH] plan: raise error on cyclic task + cue error formatting Signed-off-by: Sam Alba --- cue.mod/pkg/.gitignore | 4 ---- plan/runner.go | 9 +++++++-- 2 files changed, 7 insertions(+), 6 deletions(-) delete mode 100644 cue.mod/pkg/.gitignore diff --git a/cue.mod/pkg/.gitignore b/cue.mod/pkg/.gitignore deleted file mode 100644 index 8e3152ec..00000000 --- a/cue.mod/pkg/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# generated by dagger -dagger.lock -dagger.io -universe.dagger.io \ No newline at end of file diff --git a/plan/runner.go b/plan/runner.go index 71308851..219f5fbe 100644 --- a/plan/runner.go +++ b/plan/runner.go @@ -107,6 +107,11 @@ func (r *Runner) initTasks() { } func (r *Runner) addTask(t *cueflow.Task) { + // avoid circular dependencies + if _, ok := r.tasks.Load(t.Path().String()); ok { + return + } + r.tasks.Store(t.Path().String(), struct{}{}) for _, dep := range t.Dependencies() { @@ -156,9 +161,9 @@ func (r *Runner) taskFunc(flowVal cue.Value) (cueflow.Runner, error) { if strings.Contains(err.Error(), "context canceled") { lg.Error().Dur("duration", time.Since(start)).Str("state", string(task.StateCanceled)).Msg(string(task.StateCanceled)) } else { - lg.Error().Dur("duration", time.Since(start)).Err(err).Str("state", string(task.StateFailed)).Msg(string(task.StateFailed)) + lg.Error().Dur("duration", time.Since(start)).Err(compiler.Err(err)).Str("state", string(task.StateFailed)).Msg(string(task.StateFailed)) } - return fmt.Errorf("%s: %w", t.Path().String(), err) + return fmt.Errorf("%s: %w", t.Path().String(), compiler.Err(err)) } lg.Info().Dur("duration", time.Since(start)).Str("state", string(task.StateCompleted)).Msg(string(task.StateCompleted))