diff --git a/pkg/server/build.go b/pkg/server/build.go index 600a09936e..d36ae99e43 100644 --- a/pkg/server/build.go +++ b/pkg/server/build.go @@ -71,7 +71,7 @@ func (s *Server) ReceiveVersion(r *http.Request, logWriter logger.Logger, user s if err := s.store.Upload(user, name, id, file); err != nil { return nil, fmt.Errorf("Failed to upload to storage: %w", err) } - if err := s.runHooks(s.postUploadHooks, user, name, id, version, nil, dir, logWriter); err != nil { + if err := s.runHooks(s.postUploadHooks, user, name, id, version, nil, logWriter); err != nil { return nil, err } for _, arch := range config.Environment.Architectures { @@ -111,6 +111,11 @@ func (s *Server) buildImage(buildID, dir, user, name, id string, version *model. return } + if err := s.runHooks(s.postBuildHooks, user, name, id, nil, result.image, logWriter); err != nil { + handleError(err) + return + } + // only upload the zip and run post-build hooks on primary arch if isPrimary { if err := s.saveExamples(result, dir, version.Config); err != nil { @@ -139,15 +144,11 @@ func (s *Server) buildImage(buildID, dir, user, name, id string, version *model. return } - if err := s.runHooks(s.postBuildPrimaryHooks, user, name, id, version, result.image, dir, logWriter); err != nil { + if err := s.runHooks(s.postBuildPrimaryHooks, user, name, id, version, result.image, logWriter); err != nil { handleError(err) return } } - if err := s.runHooks(s.postBuildHooks, user, name, id, nil, result.image, dir, logWriter); err != nil { - handleError(err) - return - } if err := s.db.InsertImage(user, name, id, arch, result.image); err != nil { handleError(err) diff --git a/pkg/server/web_hook.go b/pkg/server/web_hook.go index 288720c5af..0c77de1f00 100644 --- a/pkg/server/web_hook.go +++ b/pkg/server/web_hook.go @@ -33,7 +33,7 @@ func newWebHook(urlWithSecret string) (*WebHook, error) { return &WebHook{url: hookURL, secret: secret}, nil } -func (wh *WebHook) run(user string, name string, id string, version *model.Version, image *model.Image, dir string, logWriter logger.Logger) error { +func (wh *WebHook) run(user string, name string, id string, version *model.Version, image *model.Image, logWriter logger.Logger) error { values := url.Values{ "version_id": {id}, "user": {user}, @@ -54,7 +54,8 @@ func (wh *WebHook) run(user string, name string, id string, version *model.Versi return err } values["image_json_base64"] = []string{base64.StdEncoding.EncodeToString(imageJSON)} - values["arch"] = []string{image.Arch} + values["image_uri"] = []string{image.URI} + values["image_arch"] = []string{image.Arch} values["cpu_usage"] = []string{fmt.Sprintf("%.2f", image.TestStats.CPUUsage)} values["memory_usage"] = []string{strconv.FormatUint(image.TestStats.MemoryUsage, 10)} } @@ -71,9 +72,9 @@ func (wh *WebHook) run(user string, name string, id string, version *model.Versi return nil } -func (s *Server) runHooks(hooks []*WebHook, user string, id string, name string, mod *model.Version, image *model.Image, dir string, logWriter logger.Logger) error { +func (s *Server) runHooks(hooks []*WebHook, user string, name string, id string, version *model.Version, image *model.Image, logWriter logger.Logger) error { for _, hook := range hooks { - if err := hook.run(user, name, id, mod, image, dir, logWriter); err != nil { + if err := hook.run(user, name, id, version, image, logWriter); err != nil { return err } }