From 7124057bad16694d2b1f15dfe68a6109961b34ab Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Wed, 20 Dec 2023 07:56:41 +0100 Subject: [PATCH] internal/build: fix crash in MustRunCommandWithOutput (#28709) --- internal/build/util.go | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/internal/build/util.go b/internal/build/util.go index 17928118a..82f9ba51a 100644 --- a/internal/build/util.go +++ b/internal/build/util.go @@ -68,23 +68,18 @@ func MustRunCommand(cmd string, args ...string) { MustRun(exec.Command(cmd, args...)) } +// MustRunCommandWithOutput runs the given command, and ensures that some output will be +// printed while it runs. This is useful for CI builds where the process will be stopped +// when there is no output. func MustRunCommandWithOutput(cmd string, args ...string) { - var done chan bool - // This is a little loop to generate some output, so CI does not tear down the - // process after 300 seconds. + interval := time.NewTicker(time.Minute) + defer interval.Stop() go func() { - for i := 0; i < 15; i++ { + for range interval.C { fmt.Printf("Waiting for command %q\n", cmd) - select { - case <-time.After(time.Minute): - break - case <-done: - return - } } }() MustRun(exec.Command(cmd, args...)) - close(done) } var warnedAboutGit bool