Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions pkg/platform/api/buildlogstream/streamer.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ func (r *Request) Wait() error {
}
}

func (r *Request) responseReader(conn *websocket.Conn, readErr chan error) {
func (r *Request) responseReader(conn *websocket.Conn, errCh chan error) {
artifactMap := model.ArtifactMap(r.recipe)
total := len(artifactMap)
end := 0
Expand All @@ -84,13 +84,13 @@ func (r *Request) responseReader(conn *websocket.Conn, readErr chan error) {
var artifactErr error

defer func() {
readErr <- nil
r.writeError(errCh, nil)
}()
for {
var msg message
err := conn.ReadJSON(&msg)
if err != nil {
readErr <- locale.WrapError(err, "err_websocket_read", "Could not read websocket response: {{.V0}}.", err.Error())
r.writeError(errCh, locale.WrapError(err, "err_websocket_read", "Could not read websocket response: {{.V0}}.", err.Error()))
return
}

Expand All @@ -101,9 +101,9 @@ func (r *Request) responseReader(conn *websocket.Conn, readErr chan error) {

switch msg.Type {
case "build_failed":
readErr <- locale.WrapError(artifactErr, "err_logstream_build_failed", "Build failed with error message: {{.V0}}.", msg.ErrorMessage)
r.writeError(errCh, locale.WrapError(artifactErr, "err_logstream_build_failed", "Build failed with error message: {{.V0}}.", msg.ErrorMessage))
case "build_succeeded":
readErr <- nil
r.writeError(errCh, nil)
case "artifact_started":
if !artifactMapped {
continue // ignore
Expand All @@ -117,7 +117,7 @@ func (r *Request) responseReader(conn *websocket.Conn, readErr chan error) {
if !artifactMapped {
continue // ignore
}

// NOTE: fix to ignore current noop "final pkg artifact"
if msg.ArtifactID == *r.recipe.RecipeID {
break
Expand All @@ -131,3 +131,7 @@ func (r *Request) responseReader(conn *websocket.Conn, readErr chan error) {
}
}

func (r *Request) writeError(errCh chan error, err error) {
r.msgHandler.BuildFinished()
errCh <- err
}