@@ -170,47 +170,30 @@ func (impl *WorkflowEventProcessorImpl) SubscribeCDStageCompleteEvent() error {
170170			return 
171171		}
172172		wfr .IsArtifactUploaded  =  cdStageCompleteEvent .IsArtifactUploaded 
173- 		if  wfr . Status   !=   string ( v1alpha1 . NodeSucceeded ) {
173+ 		if  ! slices . Contains ( cdWorkflowModelBean . WfrTerminalStatusList ,  wfr . Status ) {
174174			impl .logger .Debugw ("event received from ci runner, updating workflow runner status as succeeded" , "savedWorkflowRunnerId" , wfr .Id , "oldStatus" , wfr .Status , "podStatus" , wfr .PodStatus )
175- 			wfr .Status  =  string (v1alpha1 .NodeSucceeded )
175+ 			if  cdStageCompleteEvent .IsFailed  {
176+ 				wfr .Status  =  string (v1alpha1 .NodeFailed )
177+ 			} else  {
178+ 				wfr .Status  =  string (v1alpha1 .NodeSucceeded )
179+ 			}
176180			err  =  impl .cdWorkflowRunnerService .UpdateWfr (wfr , 1 )
177181			if  err  !=  nil  {
178182				impl .logger .Errorw ("update cd-wf-runner failed for id " , "cdWfrId" , wfr .Id , "err" , err )
179183				return 
180184			}
185+ 
186+ 			triggerContext  :=  triggerBean.TriggerContext {
187+ 				ReferenceId : pointer .String (msg .MsgId ),
188+ 			}
189+ 			impl .handleCDStageCompleteEvent (triggerContext , cdStageCompleteEvent , wfr )
181190		} else  {
182191			err  =  impl .cdWorkflowRunnerService .UpdateIsArtifactUploaded (wfr .Id , cdStageCompleteEvent .IsArtifactUploaded )
183192			if  err  !=  nil  {
184193				impl .logger .Errorw ("error in updating isArtifactUploaded" , "cdWfrId" , wfr .Id , "err" , err )
185194				return 
186195			}
187196		}
188- 
189- 		triggerContext  :=  triggerBean.TriggerContext {
190- 			ReferenceId : pointer .String (msg .MsgId ),
191- 		}
192- 		if  wfr .WorkflowType  ==  apiBean .CD_WORKFLOW_TYPE_PRE  {
193- 			impl .logger .Debugw ("received pre stage success event for workflow runner " , "wfId" , strconv .Itoa (wfr .Id ))
194- 			err  =  impl .workflowDagExecutor .HandlePreStageSuccessEvent (triggerContext , cdStageCompleteEvent )
195- 			if  err  !=  nil  {
196- 				impl .logger .Errorw ("deployment success event error" , "err" , err )
197- 				return 
198- 			}
199- 		} else  if  wfr .WorkflowType  ==  apiBean .CD_WORKFLOW_TYPE_POST  {
200- 
201- 			pluginArtifacts  :=  make (map [string ][]string )
202- 			if  cdStageCompleteEvent .PluginArtifacts  !=  nil  {
203- 				pluginArtifacts  =  cdStageCompleteEvent .PluginArtifacts .GetRegistryToUniqueContainerArtifactDataMapping ()
204- 			}
205- 			globalUtil .MergeMaps (pluginArtifacts , cdStageCompleteEvent .PluginRegistryArtifactDetails )
206- 
207- 			impl .logger .Debugw ("received post stage success event for workflow runner " , "wfId" , strconv .Itoa (wfr .Id ))
208- 			err  =  impl .workflowDagExecutor .HandlePostStageSuccessEvent (triggerContext , wfr , wfr .CdWorkflowId , cdStageCompleteEvent .CdPipelineId , cdStageCompleteEvent .TriggeredBy , pluginArtifacts )
209- 			if  err  !=  nil  {
210- 				impl .logger .Errorw ("deployment success event error" , "err" , err )
211- 				return 
212- 			}
213- 		}
214197	}
215198
216199	// add required logging here 
@@ -233,6 +216,37 @@ func (impl *WorkflowEventProcessorImpl) SubscribeCDStageCompleteEvent() error {
233216	return  nil 
234217}
235218
219+ func  (impl  * WorkflowEventProcessorImpl ) handleCDStageCompleteEvent (triggerContext  triggerBean.TriggerContext , cdStageCompleteEvent  bean.CdStageCompleteEvent , wfr  * cdWorkflowBean.CdWorkflowRunnerDto ) {
220+ 	if  cdStageCompleteEvent .IsFailed  {
221+ 		impl .logger .Debugw ("event received from ci runner, updating workflow runner status as failed, not taking any action" , "savedWorkflowRunnerId" , wfr .Id , "oldStatus" , wfr .Status , "podStatus" , wfr .PodStatus )
222+ 		return 
223+ 	}
224+ 
225+ 	var  err  error 
226+ 	if  wfr .WorkflowType  ==  apiBean .CD_WORKFLOW_TYPE_PRE  {
227+ 		impl .logger .Debugw ("received pre stage success event for workflow runner " , "wfId" , strconv .Itoa (wfr .Id ))
228+ 		err  =  impl .workflowDagExecutor .HandlePreStageSuccessEvent (triggerContext , cdStageCompleteEvent )
229+ 		if  err  !=  nil  {
230+ 			impl .logger .Errorw ("deployment success event error" , "err" , err )
231+ 			return 
232+ 		}
233+ 	} else  if  wfr .WorkflowType  ==  apiBean .CD_WORKFLOW_TYPE_POST  {
234+ 		impl .logger .Debugw ("received post stage success event for workflow runner " , "wfId" , strconv .Itoa (wfr .Id ))
235+ 
236+ 		pluginArtifacts  :=  make (map [string ][]string )
237+ 		if  cdStageCompleteEvent .PluginArtifacts  !=  nil  {
238+ 			pluginArtifacts  =  cdStageCompleteEvent .PluginArtifacts .GetRegistryToUniqueContainerArtifactDataMapping ()
239+ 		}
240+ 		globalUtil .MergeMaps (pluginArtifacts , cdStageCompleteEvent .PluginRegistryArtifactDetails )
241+ 
242+ 		err  =  impl .workflowDagExecutor .HandlePostStageSuccessEvent (triggerContext , wfr , wfr .CdWorkflowId , cdStageCompleteEvent .CdPipelineId , cdStageCompleteEvent .TriggeredBy , pluginArtifacts )
243+ 		if  err  !=  nil  {
244+ 			impl .logger .Errorw ("deployment success event error" , "err" , err )
245+ 			return 
246+ 		}
247+ 	}
248+ }
249+ 
236250func  (impl  * WorkflowEventProcessorImpl ) SubscribeTriggerBulkAction () error  {
237251	callback  :=  func (msg  * model.PubSubMsg ) {
238252		cdWorkflow  :=  new (pipelineConfig.CdWorkflow )
0 commit comments