Skip to content

Commit a6d7385

Browse files
Merge pull request #6361 from devtron-labs/fix-cd-stage-complete-flow-from-main
fix: fix for failure to trigger cd set on auto after pre-cd is success which is also on auto which got triggered after ci
2 parents c237d91 + 44c7b06 commit a6d7385

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

pkg/eventProcessor/in/WorkflowEventProcessorService.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,9 @@ func (impl *WorkflowEventProcessorImpl) SubscribeCDStageCompleteEvent() error {
170170
return
171171
}
172172
wfr.IsArtifactUploaded = cdStageCompleteEvent.IsArtifactUploaded
173+
// currently, CD_STAGE_COMPLETE_TOPIC is published from ci-runner only for pre/post CD success or failure events.
174+
// no other wfr status are sent other than these two.
175+
// a check is in place for all terminal states to ensure future compatibility.
173176
if !slices.Contains(cdWorkflowModelBean.WfrTerminalStatusList, wfr.Status) {
174177
impl.logger.Debugw("event received from ci runner, updating workflow runner status as succeeded", "savedWorkflowRunnerId", wfr.Id, "oldStatus", wfr.Status, "podStatus", wfr.PodStatus)
175178
if cdStageCompleteEvent.IsFailed {
@@ -182,18 +185,17 @@ func (impl *WorkflowEventProcessorImpl) SubscribeCDStageCompleteEvent() error {
182185
impl.logger.Errorw("update cd-wf-runner failed for id ", "cdWfrId", wfr.Id, "err", err)
183186
return
184187
}
185-
186-
triggerContext := triggerBean.TriggerContext{
187-
ReferenceId: pointer.String(msg.MsgId),
188-
}
189-
impl.handleCDStageCompleteEvent(triggerContext, cdStageCompleteEvent, wfr)
190188
} else {
191189
err = impl.cdWorkflowRunnerService.UpdateIsArtifactUploaded(wfr.Id, cdStageCompleteEvent.IsArtifactUploaded)
192190
if err != nil {
193191
impl.logger.Errorw("error in updating isArtifactUploaded", "cdWfrId", wfr.Id, "err", err)
194192
return
195193
}
196194
}
195+
triggerContext := triggerBean.TriggerContext{
196+
ReferenceId: pointer.String(msg.MsgId),
197+
}
198+
impl.handleCDStageCompleteEvent(triggerContext, cdStageCompleteEvent, wfr)
197199
}
198200

199201
// add required logging here

pkg/pipeline/CdHandler.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,7 @@ func (impl *CdHandlerImpl) converterWFR(wfr pipelineConfig.CdWorkflowRunner) pip
785785
workflow.TargetPlatforms = utils.ConvertTargetPlatformStringToObject(wfr.CdWorkflow.CiArtifact.TargetPlatforms)
786786
workflow.PipelineId = wfr.CdWorkflow.PipelineId
787787
workflow.CiArtifactId = wfr.CdWorkflow.CiArtifactId
788+
// TODO: FIXME :- if wfr status is terminal then only migrate isArtifactUploaded flag.
788789
isArtifactUploaded, isMigrationRequired := wfr.GetIsArtifactUploaded()
789790
if isMigrationRequired {
790791
// Migrate isArtifactUploaded. For old records, set isArtifactUploaded -> Uploaded

0 commit comments

Comments
 (0)