@@ -170,47 +170,30 @@ func (impl *WorkflowEventProcessorImpl) SubscribeCDStageCompleteEvent() error {
170
170
return
171
171
}
172
172
wfr .IsArtifactUploaded = cdStageCompleteEvent .IsArtifactUploaded
173
- if wfr . Status != string ( v1alpha1 . NodeSucceeded ) {
173
+ if ! slices . Contains ( cdWorkflowModelBean . WfrTerminalStatusList , wfr . Status ) {
174
174
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
+ }
176
180
err = impl .cdWorkflowRunnerService .UpdateWfr (wfr , 1 )
177
181
if err != nil {
178
182
impl .logger .Errorw ("update cd-wf-runner failed for id " , "cdWfrId" , wfr .Id , "err" , err )
179
183
return
180
184
}
185
+
186
+ triggerContext := triggerBean.TriggerContext {
187
+ ReferenceId : pointer .String (msg .MsgId ),
188
+ }
189
+ impl .handleCDStageCompleteEvent (triggerContext , cdStageCompleteEvent , wfr )
181
190
} else {
182
191
err = impl .cdWorkflowRunnerService .UpdateIsArtifactUploaded (wfr .Id , cdStageCompleteEvent .IsArtifactUploaded )
183
192
if err != nil {
184
193
impl .logger .Errorw ("error in updating isArtifactUploaded" , "cdWfrId" , wfr .Id , "err" , err )
185
194
return
186
195
}
187
196
}
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
- }
214
197
}
215
198
216
199
// add required logging here
@@ -233,6 +216,37 @@ func (impl *WorkflowEventProcessorImpl) SubscribeCDStageCompleteEvent() error {
233
216
return nil
234
217
}
235
218
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
+
236
250
func (impl * WorkflowEventProcessorImpl ) SubscribeTriggerBulkAction () error {
237
251
callback := func (msg * model.PubSubMsg ) {
238
252
cdWorkflow := new (pipelineConfig.CdWorkflow )
0 commit comments