Skip to content

Commit

Permalink
APP-4665 collapse cloud-build logs (#3820)
Browse files Browse the repository at this point in the history
  • Loading branch information
abe-winter committed Apr 17, 2024
1 parent 513136a commit f355349
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 7 deletions.
19 changes: 12 additions & 7 deletions cli/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,14 @@ const (
moduleFlagForce = "force"
moduleFlagBinary = "binary"

moduleBuildFlagPath = "module"
moduleBuildFlagRef = "ref"
moduleBuildFlagCount = "count"
moduleBuildFlagVersion = "version"
moduleBuildFlagBuildID = "id"
moduleBuildFlagPlatform = "platform"
moduleBuildFlagWait = "wait"
moduleBuildFlagPath = "module"
moduleBuildFlagRef = "ref"
moduleBuildFlagCount = "count"
moduleBuildFlagVersion = "version"
moduleBuildFlagBuildID = "id"
moduleBuildFlagPlatform = "platform"
moduleBuildFlagWait = "wait"
moduleBuildFlagGroupLogs = "group-logs"

mlTrainingFlagPath = "path"
mlTrainingFlagName = "name"
Expand Down Expand Up @@ -1373,6 +1374,10 @@ Example:
Name: moduleBuildFlagWait,
Usage: "wait for the build to finish before outputting any logs",
},
&cli.BoolFlag{
Name: moduleBuildFlagGroupLogs,
Usage: "write ::group:: commands so github action logs collapse",
},
},
Action: ModuleBuildLogsAction,
},
Expand Down
15 changes: 15 additions & 0 deletions cli/module_build.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package cli
import (
"fmt"
"io"
"os"
"strings"
"text/tabwriter"
"time"
Expand Down Expand Up @@ -192,6 +193,7 @@ func ModuleBuildLogsAction(c *cli.Context) error {
buildID := c.String(moduleBuildFlagBuildID)
platform := c.String(moduleBuildFlagPlatform)
shouldWait := c.Bool(moduleBuildFlagWait)
groupLogs := c.Bool(moduleBuildFlagGroupLogs)

client, err := newViamClient(c)
if err != nil {
Expand All @@ -216,11 +218,24 @@ func ModuleBuildLogsAction(c *cli.Context) error {
}
var combinedErr error
for _, platform := range platforms {
if groupLogs {
statusEmoji := "❓"
switch statuses[platform] { //nolint: exhaustive
case jobStatusDone:
statusEmoji = "✅"
case jobStatusFailed:
statusEmoji = "❌"
}
printf(os.Stdout, "::group::{%s %s}", statusEmoji, platform)
}
infof(c.App.Writer, "Logs for %q", platform)
err := client.printModuleBuildLogs(buildID, platform)
if err != nil {
combinedErr = multierr.Combine(combinedErr, client.printModuleBuildLogs(buildID, platform))
}
if groupLogs {
printf(os.Stdout, "::endgroup::")
}
}
if combinedErr != nil {
return combinedErr
Expand Down

0 comments on commit f355349

Please sign in to comment.