Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -144,14 +144,14 @@ func (handler PipelineTriggerRestHandlerImpl) OverrideConfig(w http.ResponseWrit
triggerContext := bean3.TriggerContext{
Context: ctx,
}
mergeResp, err := handler.cdTriggerService.ManualCdTrigger(triggerContext, &overrideRequest)
mergeResp, helmPackageName, err := handler.cdTriggerService.ManualCdTrigger(triggerContext, &overrideRequest)
span.End()
if err != nil {
handler.logger.Errorw("request err, OverrideConfig", "err", err, "payload", overrideRequest)
common.WriteJsonResp(w, err, err.Error(), http.StatusInternalServerError)
return
}
res := map[string]interface{}{"releaseId": mergeResp}
res := map[string]interface{}{"releaseId": mergeResp, "helmPackageName": helmPackageName}
common.WriteJsonResp(w, err, res, http.StatusOK)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ func (impl AppListingRepositoryQueryBuilder) buildAppListingWhereCondition(appLi
}
if isNotDeployedFilterApplied {
deploymentAppType := "manifest_download"
whereCondition += " and (p.deployment_app_created=? and (p.deployment_app_type != ? or dc.deployment_app_type != ? ) or a.id NOT IN (SELECT app_id from pipeline) "
whereCondition += " and (p.deployment_app_created=? and (p.deployment_app_type <> ? or dc.deployment_app_type <> ? ) or a.id NOT IN (SELECT app_id from pipeline) "
queryParams = append(queryParams, false, deploymentAppType, deploymentAppType)
if len(appStatusExcludingNotDeployed) > 0 {
whereCondition += " or aps.status IN (?) "
Expand Down
2 changes: 1 addition & 1 deletion pkg/deployment/deployedApp/DeployedAppService.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ func (impl *DeployedAppServiceImpl) StopStartApp(ctx context.Context, stopReques
Context: ctx,
ReferenceId: stopRequest.ReferenceId,
}
id, err := impl.cdTriggerService.ManualCdTrigger(triggerContext, overrideRequest)
id, _, err := impl.cdTriggerService.ManualCdTrigger(triggerContext, overrideRequest)
if err != nil {
impl.logger.Errorw("error in stopping app", "err", err, "appId", stopRequest.AppId, "envId", stopRequest.EnvironmentId)
return 0, err
Expand Down
5 changes: 5 additions & 0 deletions pkg/deployment/gitOps/git/GitOperationService.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ type GitOperationService interface {
CloneInDir(repoUrl, chartDir string) (string, error)
ReloadGitOpsProvider() error
UpdateGitHostUrlByProvider(request *apiBean.GitOpsConfigDto) error
GetRepoUrlWithUserName(url string) (string, error)
}

type GitOperationServiceImpl struct {
Expand Down Expand Up @@ -475,3 +476,7 @@ func (impl *GitOperationServiceImpl) addConfigFileToChart(config *ChartConfig, d
}
return nil
}

func (impl *GitOperationServiceImpl) GetRepoUrlWithUserName(url string) (string, error) {
return url, nil
}
51 changes: 51 additions & 0 deletions pkg/deployment/trigger/devtronApps/PreStageTriggerService.go
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,57 @@ func (impl *TriggerServiceImpl) TriggerPreStage(request bean.TriggerRequest) err
return nil
}

func (impl *TriggerServiceImpl) TriggerAutoCDOnPreStageSuccess(triggerContext bean.TriggerContext, cdPipelineId, ciArtifactId, workflowId int, triggerdBy int32, scanExecutionHistoryId int) error {
pipeline, err := impl.pipelineRepository.FindById(cdPipelineId)
if err != nil {
return err
}
if pipeline.TriggerType == pipelineConfig.TRIGGER_TYPE_AUTOMATIC {
ciArtifact, err := impl.ciArtifactRepository.Get(ciArtifactId)
if err != nil {
return err
}
cdWorkflow, err := impl.cdWorkflowRepository.FindById(workflowId)
if err != nil {
return err
}
// TODO : confirm about this logic used for applyAuth

// checking if deployment is triggered already, then ignore trigger
deploymentTriggeredAlready := impl.checkDeploymentTriggeredAlready(cdWorkflow.Id)
if deploymentTriggeredAlready {
impl.logger.Warnw("deployment is already triggered, so ignoring this msg", "cdPipelineId", cdPipelineId, "ciArtifactId", ciArtifactId, "workflowId", workflowId)
return nil
}

triggerRequest := bean.TriggerRequest{
CdWf: cdWorkflow,
Pipeline: pipeline,
Artifact: ciArtifact,
TriggeredBy: triggerdBy,
TriggerContext: triggerContext,
}

triggerRequest.TriggerContext.Context = context.Background()
err = impl.TriggerAutomaticDeployment(triggerRequest)
if err != nil {
return err
}
}
return nil
}
func (impl *TriggerServiceImpl) checkDeploymentTriggeredAlready(wfId int) bool {
deploymentTriggeredAlready := false
// TODO : need to check this logic for status check in case of multiple deployments requirement for same workflow
workflowRunner, err := impl.cdWorkflowRepository.FindByWorkflowIdAndRunnerType(context.Background(), wfId, bean2.CD_WORKFLOW_TYPE_DEPLOY)
if err != nil {
impl.logger.Errorw("error occurred while fetching workflow runner", "wfId", wfId, "err", err)
return deploymentTriggeredAlready
}
deploymentTriggeredAlready = workflowRunner.CdWorkflowId == wfId
return deploymentTriggeredAlready
}

func (impl *TriggerServiceImpl) createStartingWfAndRunner(request bean.TriggerRequest, triggeredAt time.Time) (*pipelineConfig.CdWorkflow, *pipelineConfig.CdWorkflowRunner, error) {
triggeredBy := request.TriggeredBy
artifact := request.Artifact
Expand Down
Loading
Loading