Delegate analyze checkpoints to shared persistence
This commit is contained in:
@@ -136,28 +136,26 @@ func (state *analyzeExecutionState) checkpointCollection(
|
||||
return fmt.Errorf("validate analyze artifact collection: %w", err)
|
||||
}
|
||||
|
||||
candidate := *m
|
||||
candidate.Stages = make(map[string]*manifest.StageRecord, len(m.Stages))
|
||||
for name, record := range m.Stages {
|
||||
candidate.Stages[name] = record
|
||||
}
|
||||
analyzeRecord := *m.Stages["analyze"]
|
||||
analyzeRecord.AnalyzeStateVersion = manifest.AnalyzeStateContractVersion
|
||||
analyzeRecord.AnalyzeArtifacts = manifest.CloneAnalyzeArtifactCollection(records)
|
||||
candidate.Stages["analyze"] = &analyzeRecord
|
||||
|
||||
manifestPath := artifacts.SessionManifestPathForCampaign(
|
||||
state.execution.Paths.WorkspaceRoot,
|
||||
m.Campaign,
|
||||
m.SessionID,
|
||||
)
|
||||
if err := state.execution.Env.ManifestStore.Save(ctx, manifestPath, &candidate); err != nil {
|
||||
return fmt.Errorf("save session manifest %q: %w", manifestPath, err)
|
||||
if err := checkpointStageCollection(
|
||||
ctx,
|
||||
state.execution.Env.ManifestStore,
|
||||
manifestPath,
|
||||
m,
|
||||
"analyze",
|
||||
func(record *manifest.StageRecord) error {
|
||||
record.AnalyzeStateVersion = manifest.AnalyzeStateContractVersion
|
||||
record.AnalyzeArtifacts = manifest.CloneAnalyzeArtifactCollection(records)
|
||||
return nil
|
||||
},
|
||||
); err != nil {
|
||||
return err
|
||||
}
|
||||
liveRecord := m.Stages["analyze"]
|
||||
liveRecord.AnalyzeStateVersion = candidate.Stages["analyze"].AnalyzeStateVersion
|
||||
liveRecord.AnalyzeArtifacts = manifest.CloneAnalyzeArtifactCollection(candidate.Stages["analyze"].AnalyzeArtifacts)
|
||||
m.UpdatedAt = candidate.UpdatedAt
|
||||
state.records = manifest.CloneAnalyzeArtifactCollection(liveRecord.AnalyzeArtifacts)
|
||||
state.committedRecords = manifest.CloneAnalyzeArtifactCollection(liveRecord.AnalyzeArtifacts)
|
||||
return nil
|
||||
|
||||
Reference in New Issue
Block a user