func getFinalPipelineRunStatus(apiClient pps.ApiClient, pipelineRunID string) (*pps.PipelineRunStatus, error) { // TODO(pedge): not good ticker := time.NewTicker(time.Second) for i := 0; i < 60; i++ { <-ticker.C pipelineRunStatuses, err := apiClient.GetPipelineRunStatus( context.Background(), &pps.GetPipelineRunStatusRequest{ PipelineRunId: pipelineRunID, }, ) if err != nil { return nil, err } pipelineRunStatus := pipelineRunStatuses.PipelineRunStatus[0] protolog.Printf("status at tick %d: %v\n", i, pipelineRunStatus) switch pipelineRunStatus.PipelineRunStatusType { case pps.PipelineRunStatusType_PIPELINE_RUN_STATUS_TYPE_ERROR: return pipelineRunStatus, nil case pps.PipelineRunStatusType_PIPELINE_RUN_STATUS_TYPE_SUCCESS: return pipelineRunStatus, nil } } return nil, fmt.Errorf("did not get final pipeline status for %s", pipelineRunID) }
func GetPipelineRunStatus( apiClient pps.ApiClient, pipelineRunID string, ) (*pps.GetPipelineRunStatusResponse, error) { return apiClient.GetPipelineRunStatus( context.Background(), &pps.GetPipelineRunStatusRequest{ PipelineRunId: pipelineRunID, }, ) }