Validate hidden base artifact ownership conflicts
This commit is contained in:
@@ -42,18 +42,20 @@ type pipelineFieldOwnership struct {
|
||||
|
||||
func loadPipelineWithConfigKit(path string, opts PipelineLoadOptions) (*PipelineConfig, error) {
|
||||
profile := selectedPipelineProfileName(opts)
|
||||
result, err := configkit.Load(configkit.File(path), configkit.Options[PipelineConfig]{
|
||||
Imports: true,
|
||||
Profile: profile,
|
||||
Definition: configkit.Definition[PipelineConfig]{
|
||||
Defaults: pipelineConfigDefaults,
|
||||
Resolve: resolvePipelineConfig,
|
||||
Validate: validatePipelineConfigKit,
|
||||
},
|
||||
})
|
||||
result, err := loadPipelineConfigKitResult(path, profile)
|
||||
if err != nil {
|
||||
return nil, describePipelineLoadError(err)
|
||||
}
|
||||
if profile != "" {
|
||||
base, err := loadPipelineConfigKitResult(path, "")
|
||||
if err != nil {
|
||||
return nil, describePipelineLoadError(err)
|
||||
}
|
||||
baseConfig := base.Config
|
||||
if err := rejectDuplicateBaseDefinitions(&baseConfig, base.Metadata(), base.Sources()); err != nil {
|
||||
return nil, fmt.Errorf("load pipeline config: %w", err)
|
||||
}
|
||||
}
|
||||
cfg := result.Config
|
||||
metadata, err := pipelineMetadataFromConfigKit(&cfg, result, opts)
|
||||
if err != nil {
|
||||
@@ -63,6 +65,18 @@ func loadPipelineWithConfigKit(path string, opts PipelineLoadOptions) (*Pipeline
|
||||
return &cfg, nil
|
||||
}
|
||||
|
||||
func loadPipelineConfigKitResult(path, profile string) (*configkit.Result[PipelineConfig], error) {
|
||||
return configkit.Load(configkit.File(path), configkit.Options[PipelineConfig]{
|
||||
Imports: true,
|
||||
Profile: profile,
|
||||
Definition: configkit.Definition[PipelineConfig]{
|
||||
Defaults: pipelineConfigDefaults,
|
||||
Resolve: resolvePipelineConfig,
|
||||
Validate: validatePipelineConfigKit,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func describePipelineLoadError(err error) error {
|
||||
return describeConfigKitLoadError("pipeline", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user