diff --git a/hcl2template/types.build.go b/hcl2template/types.build.go index 391032fae..6ea6e416f 100644 --- a/hcl2template/types.build.go +++ b/hcl2template/types.build.go @@ -146,7 +146,7 @@ func (p *Parser) decodeBuildConfig(block *hcl.Block, cfg *PackerConfig) (*BuildB } hcpPackerRegistry, moreDiags := p.decodeHCPRegistry(block) diags = append(diags, moreDiags...) - if moreDiags.HasErrors() { + if moreDiags.HasErrors() || hcpPackerRegistry == nil { continue } build.HCPPackerRegistry = hcpPackerRegistry @@ -160,7 +160,7 @@ func (p *Parser) decodeBuildConfig(block *hcl.Block, cfg *PackerConfig) (*BuildB case buildProvisionerLabel: p, moreDiags := p.decodeProvisioner(block, cfg) diags = append(diags, moreDiags...) - if moreDiags.HasErrors() { + if moreDiags.HasErrors() || p == nil { continue } build.ProvisionerBlocks = append(build.ProvisionerBlocks, p) @@ -175,14 +175,14 @@ func (p *Parser) decodeBuildConfig(block *hcl.Block, cfg *PackerConfig) (*BuildB } p, moreDiags := p.decodeProvisioner(block, cfg) diags = append(diags, moreDiags...) - if moreDiags.HasErrors() { + if moreDiags.HasErrors() || p == nil { continue } build.ErrorCleanupProvisionerBlock = p case buildPostProcessorLabel: pp, moreDiags := p.decodePostProcessor(block, cfg) diags = append(diags, moreDiags...) - if moreDiags.HasErrors() { + if moreDiags.HasErrors() || pp == nil { continue } build.PostProcessorsLists = append(build.PostProcessorsLists, []*PostProcessorBlock{pp})