Add family artifact selection and provenance
This commit is contained in:
@@ -205,6 +205,10 @@ func (analyzeStage) Run(ctx context.Context, env *Env, m *manifest.Manifest) (*S
|
||||
|
||||
logs = append(logs, artifactResult.Logs...)
|
||||
generatedConfigs = append(generatedConfigs, artifactResult.GeneratedConfigs...)
|
||||
if origin, ok := analyzeArtifactOrigin(execution, plan.Name); ok {
|
||||
artifactResult.Metadata["family"] = origin.Family
|
||||
artifactResult.Metadata["character_id"] = origin.CharacterID
|
||||
}
|
||||
artifactMetadata = append(artifactMetadata, artifactResult.Metadata)
|
||||
for _, reused := range artifactResult.ReusedArtifacts {
|
||||
sourceID, _ := reused["source_id"].(string)
|
||||
@@ -314,6 +318,10 @@ func failedAnalyzeResult(
|
||||
UpdatedAt: time.Now().UTC(),
|
||||
Error: NonResumable(cause.Error()).Reason,
|
||||
}
|
||||
if origin, ok := analyzeArtifactOrigin(execution, item.Key); ok {
|
||||
record.Family = origin.Family
|
||||
record.CharacterID = origin.CharacterID
|
||||
}
|
||||
if fingerprint != "" {
|
||||
record.FingerprintVersion = manifest.AnalyzeFingerprintContractVersion
|
||||
record.Fingerprint = fingerprint
|
||||
@@ -332,6 +340,14 @@ func failedAnalyzeResult(
|
||||
}}
|
||||
}
|
||||
|
||||
func analyzeArtifactOrigin(execution analyzeExecutionContext, key string) (config.ArtifactFamilyMemberOrigin, bool) {
|
||||
if execution.Env == nil || execution.Env.Config == nil || execution.Env.Config.Pipeline == nil {
|
||||
return config.ArtifactFamilyMemberOrigin{}, false
|
||||
}
|
||||
origin, ok := config.ArtifactFamilies(execution.Env.Config.Pipeline).Members[key]
|
||||
return origin, ok
|
||||
}
|
||||
|
||||
func artifactCfgMap(execution analyzeExecutionContext) map[string]config.ScriptoriumArtifactConfig {
|
||||
if execution.Env == nil || execution.Env.Config == nil || execution.Env.Config.Pipeline == nil ||
|
||||
execution.Env.Config.Pipeline.Scriptorium == nil {
|
||||
|
||||
Reference in New Issue
Block a user