diff --git a/bake/bake.go b/bake/bake.go index db0085208..b783689b6 100644 --- a/bake/bake.go +++ b/bake/bake.go @@ -675,7 +675,8 @@ type Group struct { } type Target struct { - Name string `json:"-" hcl:"name,label" cty:"name"` + Name string `json:"-" hcl:"name,label" cty:"name"` + Description string `json:"description,omitempty" hcl:"description,optional" cty:"description"` // Inherits is the only field that cannot be overridden with --set Inherits []string `json:"inherits,omitempty" hcl:"inherits,optional" cty:"inherits"` @@ -823,6 +824,9 @@ func (t *Target) Merge(t2 *Target) { if t2.Ulimits != nil { // merge t.Ulimits = append(t.Ulimits, t2.Ulimits...) } + if t2.Description != "" { + t.Description = t2.Description + } t.Inherits = append(t.Inherits, t2.Inherits...) } diff --git a/commands/bake.go b/commands/bake.go index ace78d96d..19fba2ff3 100644 --- a/commands/bake.go +++ b/commands/bake.go @@ -337,11 +337,16 @@ func runBake(ctx context.Context, dockerCli command.Cli, targets []string, in ba } } else { if sep { - fmt.Fprintf(dockerCli.Out(), "\n\n") + fmt.Fprintln(dockerCli.Out()) } else { sep = true } fmt.Fprintf(dockerCli.Out(), "%s\n", name) + if descr := tgts[name].Description; descr != "" { + fmt.Fprintf(dockerCli.Out(), "%s\n", descr) + } + + fmt.Fprintln(dockerCli.Out()) if code, err := printResult(dockerCli.Out(), pf, res); err != nil { fmt.Fprintf(dockerCli.Out(), "error: %v\n", err) exitCode = 1 diff --git a/commands/build.go b/commands/build.go index 9e5d3f005..12d45a08f 100644 --- a/commands/build.go +++ b/commands/build.go @@ -890,7 +890,7 @@ func printResult(w io.Writer, f *controllerapi.PrintFunc, res map[string]string) // but here we want to print the error in a way that's consistent with how // the lint warnings are printed via the `lint.PrintLintViolations` function, // which differs from the default error printing. - if f.Format != "json" { + if f.Format != "json" && len(lintResults.Warnings) > 0 { fmt.Fprintln(w) } lintBuf := bytes.NewBuffer([]byte(lintResults.Error.Message + "\n"))