package workflowdef import ( "embed" "encoding/json" "fmt" ) //go:embed manifests/*.json var manifestFS embed.FS // LoadManifestDefinition 读取内嵌 v2 manifest(Phase 4 发布种子)。 func LoadManifestDefinition(filename string) (VersionDefinition, error) { raw, err := manifestFS.ReadFile("manifests/" + filename) if err != nil { return VersionDefinition{}, fmt.Errorf("read manifest %s: %w", filename, err) } var def VersionDefinition if err := json.Unmarshal(raw, &def); err != nil { return VersionDefinition{}, fmt.Errorf("parse manifest %s: %w", filename, err) } if def.SchemaVersion <= 0 { def.SchemaVersion = 2 } return def, nil } // V2ManifestFiles 三个正式工作流 v2 manifest 文件名。 var V2ManifestFiles = map[string]string{ "main": "main.v2.json", "product_manager": "product_manager.v2.json", "test_manager": "test_manager.v2.json", }