From 62634059450e9b98c3d109bb8eea26b229010a10 Mon Sep 17 00:00:00 2001 From: Bird Date: Tue, 29 Nov 2022 17:00:33 +0800 Subject: [PATCH] fix: options nil pointer error Signed-off-by: Bird --- internal/pkg/configmanager/pipelinetemplate.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/internal/pkg/configmanager/pipelinetemplate.go b/internal/pkg/configmanager/pipelinetemplate.go index 044e7624d..c63e71f5d 100644 --- a/internal/pkg/configmanager/pipelinetemplate.go +++ b/internal/pkg/configmanager/pipelinetemplate.go @@ -55,6 +55,9 @@ func (p *pipelineRaw) getPipelineTemplate(templateMap map[string]string, globalV t *pipelineTemplate err error ) + if p.Options == nil { + p.Options = make(RawOptions) + } switch p.Type { case "template": t, err = p.newPipelineFromTemplate(templateMap, globalVars) @@ -91,6 +94,10 @@ func (p *pipelineRaw) newPipelineFromTemplate(templateMap map[string]string, glo return nil, fmt.Errorf("%s parse pipelineTemplate yaml failed: %+w", p.TemplateName, err) } + if t.Options == nil { + t.Options = make(RawOptions) + } + if err := mergo.Merge(&p.Options, t.Options); err != nil { return nil, fmt.Errorf("%s merge template options faield: %+v", p.TemplateName, err) }