diff --git a/cli/internal/runsummary/format_execution_summary.go b/cli/internal/runsummary/format_execution_summary.go index c6ac39a3f5da9..be0bcfe87e8c5 100644 --- a/cli/internal/runsummary/format_execution_summary.go +++ b/cli/internal/runsummary/format_execution_summary.go @@ -3,6 +3,7 @@ package runsummary import ( "fmt" "os" + "sort" "strings" "time" @@ -51,6 +52,7 @@ func (rsm *Meta) printExecutionSummary() { for _, t := range failed { formatted = append(formatted, util.Sprintf("${BOLD_RED}%s${RESET}", t.TaskID)) } + sort.Strings(formatted) // To make the order deterministic l := summaryLine{header: "Failed", trailer: strings.Join(formatted, ", ")} lineData = append(lineData, l) } diff --git a/turborepo-tests/integration/tests/continue.t b/turborepo-tests/integration/tests/continue.t index ae802eb09bd0d..7b946e17ac8a4 100644 --- a/turborepo-tests/integration/tests/continue.t +++ b/turborepo-tests/integration/tests/continue.t @@ -82,7 +82,7 @@ Run with --continue Tasks: 1 successful, 3 total Cached: 0 cached, 3 total Time:\s*[\.0-9]+m?s (re) - Failed: some-lib#build, other-app#build + Failed: other-app#build, some-lib#build ERROR run failed: command exited (1) [1]