Run tests and script in parralel to prevent timing out

This commit is contained in:
Akbar Rahman 2021-08-04 22:17:43 +01:00
parent 081aaee9c7
commit a3ded5a052

33
main.go
View File

@ -75,23 +75,26 @@ func webhookHandler(w http.ResponseWriter, r *http.Request) {
return return
} }
// Run tests, immediately stop if one fails // run test and script in parralel to prevent timing out
for _, test := range service.Tests { go func(){
if _, err := test.Execute(payload); err != nil { // Run tests, immediately stop if one fails
writeResponse(w, 409, for _, test := range service.Tests {
fmt.Sprintf("Conflict: Test failed: %v", err.Error()), if _, err := test.Execute(payload); err != nil {
) writeResponse(w, 409,
return fmt.Sprintf("Conflict: Test failed: %v", err.Error()),
)
return
}
} }
} stdout, err := service.Script.Execute(payload)
fmt.Println(stdout)
if err != nil {
fmt.Println(err.Error())
}
}()
if stdout, err := service.Script.Execute(payload); err != nil { writeResponse(w, 200, "OK")
writeResponse(w, 500, err.Error()) return
return
} else {
writeResponse(w, 200, string(stdout))
return
}
} }
func writeResponse(w http.ResponseWriter, responseCode int, responseString string) { func writeResponse(w http.ResponseWriter, responseCode int, responseString string) {