Infer artifact dependencies from configured inputs
This commit is contained in:
@@ -127,6 +127,11 @@ func expandPipelineArtifactFamilies(cfg *PipelineConfig, party ResolvedParty) er
|
||||
cfg.Scriptorium.ArtifactFamilies = nil
|
||||
cfg.familyCatalog = catalog
|
||||
cfg.resolution.artifactFamiliesExpanded = true
|
||||
finalizeArtifactDependencies(cfg)
|
||||
for key, member := range cfg.familyCatalog.Members {
|
||||
member.Dependencies = append([]string(nil), cfg.Scriptorium.Artifacts[key].DependsOn...)
|
||||
cfg.familyCatalog.Members[key] = member
|
||||
}
|
||||
if err := rejectConcreteMemberArtifactSources(expanded); err != nil {
|
||||
return err
|
||||
}
|
||||
@@ -261,9 +266,6 @@ func expandFamilyInputs(prefix string, family ScriptoriumArtifactFamilyConfig, c
|
||||
if !matched {
|
||||
continue
|
||||
}
|
||||
if !familyDependencyContains(family.MemberDependencies, familyKey) {
|
||||
return nil, fmt.Errorf("%s.inputs.%s.source %q requires member_dependencies entry %q", prefix, name, input.Source, familyKey)
|
||||
}
|
||||
input.Source = artifactpolicy.ConfiguredSourceID(familyKey + "_" + characterID)
|
||||
inputs[name] = input
|
||||
}
|
||||
@@ -299,15 +301,6 @@ func rejectConcreteMemberArtifactSources(artifacts map[string]ScriptoriumArtifac
|
||||
return nil
|
||||
}
|
||||
|
||||
func familyDependencyContains(values []string, want string) bool {
|
||||
for _, value := range values {
|
||||
if strings.TrimSpace(value) == want {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func inputSourceMap(inputs map[string]ScriptoriumInputConfig) map[string]string {
|
||||
if len(inputs) == 0 {
|
||||
return nil
|
||||
@@ -392,6 +385,7 @@ func cloneArtifactDefinitions(in map[string]ScriptoriumArtifactConfig) map[strin
|
||||
out := make(map[string]ScriptoriumArtifactConfig, len(in))
|
||||
for key, artifact := range in {
|
||||
artifact.DependsOn = append([]string(nil), artifact.DependsOn...)
|
||||
artifact.dependencyOrigins = cloneDependencyOrigins(artifact.dependencyOrigins)
|
||||
artifact.Inputs = cloneArtifactInputs(artifact.Inputs)
|
||||
artifact.Vars = cloneArtifactVars(artifact.Vars)
|
||||
out[key] = artifact
|
||||
|
||||
Reference in New Issue
Block a user