Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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
10 changes: 10 additions & 0 deletions internal/sql/repository/pipelineConfig/CiPipelineMaterial.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ type CiPipelineMaterialRepository interface {
GetByPipelineId(id int) ([]*CiPipelineMaterial, error)
GetRegexByPipelineId(id int) ([]*CiPipelineMaterial, error)
CheckRegexExistsForMaterial(id int) bool
GetByPipelineIdForRegexAndFixed(id int) ([]*CiPipelineMaterial, error)
}

type CiPipelineMaterialRepositoryImpl struct {
Expand Down Expand Up @@ -86,6 +87,15 @@ func (impl CiPipelineMaterialRepositoryImpl) GetByPipelineId(id int) ([]*CiPipel
Select()
return ciPipelineMaterials, err
}
func (impl CiPipelineMaterialRepositoryImpl) GetByPipelineIdForRegexAndFixed(id int) ([]*CiPipelineMaterial, error) {
var ciPipelineMaterials []*CiPipelineMaterial
err := impl.dbConnection.Model(&ciPipelineMaterials).
Column("ci_pipeline_material.*", "CiPipeline", "CiPipeline.CiTemplate", "CiPipeline.CiTemplate.GitMaterial", "CiPipeline.App", "CiPipeline.CiTemplate.DockerRegistry", "CiPipeline.CiTemplate.CiBuildConfig", "GitMaterial", "GitMaterial.GitProvider").
Where("ci_pipeline_material.ci_pipeline_id = ?", id).
Where("ci_pipeline_material.active = ?", true).
Select()
return ciPipelineMaterials, err
}

func (impl CiPipelineMaterialRepositoryImpl) FindByCiPipelineIdsIn(ids []int) ([]*CiPipelineMaterial, error) {
var ciPipelineMaterials []*CiPipelineMaterial
Expand Down
25 changes: 19 additions & 6 deletions pkg/pipeline/CdHandler.go
Original file line number Diff line number Diff line change
Expand Up @@ -644,8 +644,25 @@ func (impl *CdHandlerImpl) FetchCdWorkflowDetails(appId int, environmentId int,
if triggeredByUser == nil {
triggeredByUser = &bean.UserInfo{EmailId: "anonymous"}
}
ciArtifactId := workflow.CiArtifactId
if ciArtifactId > 0 {
ciArtifact, err := impl.ciArtifactRepository.Get(ciArtifactId)
if err != nil {
impl.Logger.Errorw("error fetching artifact data", "err", err)
return WorkflowResponse{}, err
}

ciMaterials, err := impl.ciPipelineMaterialRepository.GetByPipelineId(workflowR.CdWorkflow.Pipeline.CiPipelineId)
// handling linked ci pipeline
if ciArtifact.ParentCiArtifact > 0 && ciArtifact.WorkflowId == nil {
ciArtifactId = ciArtifact.ParentCiArtifact
}
}
ciWf, err := impl.ciWorkflowRepository.FindLastTriggeredWorkflowByArtifactId(ciArtifactId)
if err != nil && err != pg.ErrNoRows {
impl.Logger.Errorw("error in fetching ci wf", "artifactId", workflow.CiArtifactId, "err", err)
return WorkflowResponse{}, err
}
ciMaterials, err := impl.ciPipelineMaterialRepository.GetByPipelineIdForRegexAndFixed(ciWf.CiPipelineId)
if err != nil {
impl.Logger.Errorw("err", "err", err)
return WorkflowResponse{}, err
Expand All @@ -664,11 +681,6 @@ func (impl *CdHandlerImpl) FetchCdWorkflowDetails(appId int, environmentId int,
}
ciMaterialsArr = append(ciMaterialsArr, res)
}
ciWf, err := impl.ciWorkflowRepository.FindLastTriggeredWorkflowByArtifactId(workflow.CiArtifactId)
if err != nil && err != pg.ErrNoRows {
impl.Logger.Errorw("error in fetching ci wf", "artifactId", workflow.CiArtifactId, "err", err)
return WorkflowResponse{}, err
}
gitTriggers := make(map[int]pipelineConfig.GitCommit)
if ciWf.GitTriggers != nil {
gitTriggers = ciWf.GitTriggers
Expand All @@ -692,6 +704,7 @@ func (impl *CdHandlerImpl) FetchCdWorkflowDetails(appId int, environmentId int,
BlobStorageEnabled: workflow.BlobStorageEnabled,
}
return workflowResponse, nil

}

func (impl *CdHandlerImpl) DownloadCdWorkflowArtifacts(pipelineId int, buildId int) (*os.File, error) {
Expand Down