internal/build: fix crash in MustRunCommandWithOutput (#28709)

This commit is contained in:
Felix Lange 2023-12-20 07:56:41 +01:00 committed by GitHub
parent 9258a44b8f
commit 7124057bad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -68,23 +68,18 @@ func MustRunCommand(cmd string, args ...string) {
MustRun(exec.Command(cmd, args...)) 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) { func MustRunCommandWithOutput(cmd string, args ...string) {
var done chan bool interval := time.NewTicker(time.Minute)
// This is a little loop to generate some output, so CI does not tear down the defer interval.Stop()
// process after 300 seconds.
go func() { go func() {
for i := 0; i < 15; i++ { for range interval.C {
fmt.Printf("Waiting for command %q\n", cmd) fmt.Printf("Waiting for command %q\n", cmd)
select {
case <-time.After(time.Minute):
break
case <-done:
return
}
} }
}() }()
MustRun(exec.Command(cmd, args...)) MustRun(exec.Command(cmd, args...))
close(done)
} }
var warnedAboutGit bool var warnedAboutGit bool