Persist partial analysis artifact results
This commit is contained in:
@@ -84,6 +84,25 @@ func ValidateAnalyzeArtifactCollection(version int, records map[string]AnalyzeAr
|
||||
return nil
|
||||
}
|
||||
|
||||
// CloneAnalyzeArtifactCollection returns a deep copy in canonical dependency
|
||||
// order so projections cannot be mutated after application.
|
||||
func CloneAnalyzeArtifactCollection(records map[string]AnalyzeArtifactRecord) map[string]AnalyzeArtifactRecord {
|
||||
if records == nil {
|
||||
return nil
|
||||
}
|
||||
cloned := make(map[string]AnalyzeArtifactRecord, len(records))
|
||||
for key, record := range records {
|
||||
record.Dependencies = cloneStrings(record.Dependencies)
|
||||
record.Logs = cloneStrings(record.Logs)
|
||||
record.GeneratedConfigs = cloneStrings(record.GeneratedConfigs)
|
||||
record.Output = cloneArtifactRecord(record.Output)
|
||||
record.Scriptorium = cloneAnalyzeProvenance(record.Scriptorium)
|
||||
cloned[key] = record
|
||||
}
|
||||
normalizeAnalyzeArtifactCollection(cloned)
|
||||
return cloned
|
||||
}
|
||||
|
||||
func validateAnalyzeStageState(stageName string, version int, records map[string]AnalyzeArtifactRecord) error {
|
||||
if stageName != "analyze" {
|
||||
if version != 0 || records != nil {
|
||||
|
||||
Reference in New Issue
Block a user