Derive family member publish destinations

This commit is contained in:
2026-09-07 11:52:57 +00:00
parent f7a40afc7a
commit 884a62e8a6
5 changed files with 342 additions and 14 deletions

View File

@@ -10,7 +10,6 @@ import (
"strings"
configkit "gitea.maximumdirect.net/eric/ConfigKit"
"gitea.maximumdirect.net/eric/narratio/internal/artifactpolicy"
)
type pipelineResolutionMetadata struct {
@@ -206,19 +205,10 @@ func resolvePipelineConfig(cfg *PipelineConfig, resolution *configkit.Resolution
resolution.Record(configkit.Keys("notarius"), configkit.ChangeNormalization, "canonical Notarius configuration")
}
if cfg.Publish != nil {
configuredOutputs := scriptoriumOutputPathMap(cfg.Scriptorium)
extractionOutputs := notariusOutputKeySet(cfg.Notarius)
for index := range cfg.Publish.Outputs {
output := cfg.Publish.Outputs[index]
if strings.TrimSpace(output.Dest) != "" {
continue
}
destination, err := artifactpolicy.ResolvePublishedDestinationWithExtractions(strings.TrimSpace(output.Source), "", configuredOutputs, extractionOutputs)
if err != nil {
continue
}
configkit.Normalize(resolution, configkit.Keys("publish", "outputs").Index(index).Key("dest"), &output.Dest, destination, "derived from publish source")
cfg.Publish.Outputs[index] = output
for _, derived := range deriveMissingPublishDestinations(cfg.Publish, cfg.Scriptorium, cfg.Notarius) {
output := cfg.Publish.Outputs[derived.index]
configkit.Normalize(resolution, configkit.Keys("publish", "outputs").Index(derived.index).Key("dest"), &output.Dest, derived.dest, "derived from publish source")
cfg.Publish.Outputs[derived.index] = output
}
}
return nil