func()

in pkg/controller/jenkins_job/chain/put_jenkins_pipeline.go [132:163]


func (h PutJenkinsPipeline) createStageConfig(s *cdPipeApi.Stage, ps, conf string) (*string, error) {
	pipeSrc := map[string]interface{}{
		"type":    "default",
		"library": map[string]string{},
	}

	if s.Spec.Source.Type == consts.LibraryCodebase {
		h.setPipeSrcParams(s, pipeSrc)
	}

	tmpl, err := template.New("cd-pipeline.tmpl").Parse(conf)
	if err != nil {
		return nil, fmt.Errorf("failed to create new template: %w", err)
	}

	params := map[string]interface{}{
		"name":               s.Spec.Name,
		"gitServerCrVersion": "v2",
		"pipelineStages":     ps,
		"source":             pipeSrc,
	}

	var cdPipelineBuffer bytes.Buffer

	if err := tmpl.Execute(&cdPipelineBuffer, params); err != nil {
		return nil, fmt.Errorf("failed to execute: %w", err)
	}

	pipeConf := cdPipelineBuffer.String()

	return &pipeConf, nil
}