From 55a9c9100d600ce846d13a1a9f592d4b8a0fa30c Mon Sep 17 00:00:00 2001 From: Andrea Luzzardi Date: Fri, 4 Feb 2022 10:03:14 -0800 Subject: [PATCH] logger: collapse logs for hidden fields This change "collapses" together log "groups" containing hidden fields for the TTY logger. e.g. `actions.foo._a` and `actions.foo_b` will show up as a combined `actions.foo`. Caveats: Since we don't know in advance how many tasks are in a group, the state will change back and forth. For each task in a group, the state will transition from computing to complete (e.g. blue to green), then back to computing and so on. The transition is fast enough not to be visibile. Signed-off-by: Andrea Luzzardi --- cmd/dagger/logger/tty.go | 21 ++++++++++++------- .../netlify/test/netlify-test.cue | 4 ++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/cmd/dagger/logger/tty.go b/cmd/dagger/logger/tty.go index fa19172d..6fa22a41 100644 --- a/cmd/dagger/logger/tty.go +++ b/cmd/dagger/logger/tty.go @@ -52,7 +52,13 @@ func (l *Logs) Add(event Event) error { return nil } + // Hide `#up.*` from log group names + // FIXME: remove in Europa groupKey := strings.Split(task, ".#up")[0] + + // Hide hidden fields (e.g. `._*`) from log group names + groupKey = strings.Split(groupKey, "._")[0] + group := l.groups[groupKey] // If the group doesn't exist, create it @@ -70,15 +76,16 @@ func (l *Logs) Add(event Event) error { // Handle state events // For state events, we just want to update the group status -- no need to - // dispanything + // display anything + // + // FIXME: Since we don't know in advance how many tasks are in a group, the state will change back and forth. + // For each task in a group, the status will transition from computing to complete, then back to computing and so on. + // The transition is fast enough not to cause a problem. if st, ok := event["state"].(string); ok { - // Ignore state updates for "sub" tasks - if task != groupKey { - return nil - } - group.State = environment.State(st) - if group.State != environment.StateComputing { + if group.State == environment.StateComputing { + group.Completed = nil + } else { now := time.Now() group.Completed = &now } diff --git a/pkg/universe.dagger.io/netlify/test/netlify-test.cue b/pkg/universe.dagger.io/netlify/test/netlify-test.cue index 3507c969..0e7a95f0 100644 --- a/pkg/universe.dagger.io/netlify/test/netlify-test.cue +++ b/pkg/universe.dagger.io/netlify/test/netlify-test.cue @@ -43,7 +43,7 @@ dagger.#Plan & { contents: data.output } - _alpine: alpine.#Build & { + image: alpine.#Build & { packages: { bash: {} curl: {} @@ -52,7 +52,7 @@ dagger.#Plan & { // Check if the website was deployed verify: bash.#Run & { - input: _alpine.output + input: image.output script: #""" test "$(curl \#(deploy.deployUrl))" = "\#(marker)" """#