in controllers/cdstagedeploy/chain/process_trigger_template.go [37:92]
func (h *ProcessTriggerTemplate) ServeRequest(ctx context.Context, stageDeploy *codebaseApi.CDStageDeploy) error {
log := ctrl.LoggerFrom(ctx).WithValues("stage", stageDeploy.Spec.Stage, "pipeline", stageDeploy.Spec.Pipeline, "status", stageDeploy.Status.Status)
if skipPipelineRunCreation(stageDeploy) {
log.Info("Skip processing TriggerTemplate for auto-deploy.")
return nil
}
log.Info("Start processing TriggerTemplate for auto-deploy.")
pipeline, stage, rawResource, err := getResourcesForPipelineRun(ctx, stageDeploy, h.k8sClient, h.triggerTemplateManager)
if err != nil {
if errors.Is(err, tektoncd.ErrEmptyTriggerTemplateResources) {
log.Info("No resource templates found in the trigger template. Skip processing.", "triggertemplate", stage.Spec.TriggerTemplate)
stageDeploy.Status.Status = codebaseApi.CDStageDeployStatusCompleted
return nil
}
return err
}
appPayload, err := h.getAppPayload(ctx, stageDeploy, pipeline, stage)
if err != nil {
if errors.Is(err, autodeploy.ErrLasTagNotFound) {
log.Info("Codebase doesn't have tags in the CodebaseImageStream. Skip auto-deploy.")
stageDeploy.Status.Status = codebaseApi.CDStageDeployStatusCompleted
return nil
}
return fmt.Errorf("failed to get application payload: %w", err)
}
if err = h.triggerTemplateManager.CreatePipelineRun(
ctx,
stageDeploy.Namespace,
stageDeploy.Name,
rawResource,
appPayload,
[]byte(stage.Spec.Name),
[]byte(pipeline.Spec.Name),
[]byte(stage.Spec.ClusterName),
); err != nil {
return fmt.Errorf("failed to create PipelineRun: %w", err)
}
stageDeploy.Status.Status = codebaseApi.CDStageDeployStatusRunning
log.Info("TriggerTemplate for auto-deploy has been processed successfully.")
return nil
}