diff --git a/internal/sql/repository/pipelineConfig/CiWorkflowRepository.go b/internal/sql/repository/pipelineConfig/CiWorkflowRepository.go index f472a6b06c..eca7268854 100644 --- a/internal/sql/repository/pipelineConfig/CiWorkflowRepository.go +++ b/internal/sql/repository/pipelineConfig/CiWorkflowRepository.go @@ -284,8 +284,7 @@ func (impl *CiWorkflowRepositoryImpl) UpdateArtifactUploaded(id int, isUploaded func (impl *CiWorkflowRepositoryImpl) FindLastTriggeredWorkflowByCiIds(pipelineId []int) (ciWorkflow []*CiWorkflow, err error) { err = impl.dbConnection.Model(&ciWorkflow). Column("ci_workflow.*", "CiPipeline"). - Where("ci_workflow.ci_pipeline_id in (?) ", pg.In(pipelineId)). - Order("ci_workflow.started_on Desc"). + Where("ci_workflow.id IN (select MAX(id) from ci_workflow where ci_pipeline_id IN (?) GROUP BY ci_pipeline_id)", pg.In(pipelineId)). Select() return ciWorkflow, err } diff --git a/pkg/pipeline/CiHandler.go b/pkg/pipeline/CiHandler.go index 2b37436c8b..7cd3503bfa 100644 --- a/pkg/pipeline/CiHandler.go +++ b/pkg/pipeline/CiHandler.go @@ -1818,20 +1818,14 @@ func (impl *CiHandlerImpl) FetchCiStatusForTriggerViewForEnvironment(request res if len(ciPipelineIds) == 0 { return ciWorkflowStatuses, nil } - ciWorkflows, err := impl.ciWorkflowRepository.FindLastTriggeredWorkflowByCiIds(ciPipelineIds) + latestCiWorkflows, err := impl.ciWorkflowRepository.FindLastTriggeredWorkflowByCiIds(ciPipelineIds) if err != nil && !util.IsErrNoRows(err) { impl.Logger.Errorw("err", "ciPipelineIds", ciPipelineIds, "err", err) return ciWorkflowStatuses, err } notTriggeredWorkflows := make(map[int]bool) - latestCiWorkflows := make(map[int]*pipelineConfig.CiWorkflow) - for _, ciWorkflow := range ciWorkflows { - //adding only latest status in the list - if _, ok := latestCiWorkflows[ciWorkflow.CiPipelineId]; !ok { - latestCiWorkflows[ciWorkflow.CiPipelineId] = ciWorkflow - } - } + for _, ciWorkflow := range latestCiWorkflows { ciWorkflowStatus := &pipelineConfig.CiWorkflowStatus{} ciWorkflowStatus.CiPipelineId = ciWorkflow.CiPipelineId