Skip to content

Commit 69f4346

Browse files
authored
fix generator tool (Azure#23832)
* fix multi readme.md * fix no readme.go.md * update comment
1 parent 656c879 commit 69f4346

File tree

3 files changed

+26
-6
lines changed

3 files changed

+26
-6
lines changed

eng/tools/generator/cmd/issue/issueCmd.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,17 @@ func (c *commandContext) execute() error {
116116
if err != nil {
117117
return err
118118
}
119+
// validate the config
120+
if err := c.validateConfig(*cfg); err != nil {
121+
log.Printf("validate config fail:error(%s)", err.Error())
122+
}
123+
// output the config to stdout after filtering out some invalid request, so that the user could always get a usable config
119124
// write config to stdout
120125
b, err := json.MarshalIndent(*cfg, "", " ")
121126
if err != nil {
122127
return err
123128
}
124129
fmt.Println(string(b))
125-
// we first output the config to stdout, then validate it so that the user could always get a usable config
126-
// validate the config
127-
if err := c.validateConfig(*cfg); err != nil {
128-
return err
129-
}
130130
return nil
131131
}
132132

eng/tools/generator/cmd/issue/link/common.go

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,18 @@ func GetReadmePathFromChangedFiles(ctx context.Context, client *query.Client, fi
5353
readmeFiles[readme] = true
5454
}
5555
if len(readmeFiles) > 1 {
56-
return "", fmt.Errorf("cannot determine which RP to release because we have the following readme files involved: %+v", getMapKeys(readmeFiles))
56+
// filter specification/xxx/resource-manager/readme.md
57+
rmReadmeFile := make(map[Readme]bool)
58+
for readmePath, _ := range readmeFiles {
59+
if strings.Contains(string(readmePath), "resource-manager/readme.md") {
60+
rmReadmeFile[readmePath] = true
61+
}
62+
}
63+
if len(rmReadmeFile) == 1 {
64+
readmeFiles = rmReadmeFile
65+
} else {
66+
return "", fmt.Errorf("cannot determine which RP to release because we have the following readme files involved: %+v", getMapKeys(readmeFiles))
67+
}
5768
}
5869
if len(readmeFiles) == 0 {
5970
return "", fmt.Errorf("cannot get any readme files from these changed files: [%s]", strings.Join(files, ", "))

eng/tools/generator/config/validate/remoteValidator.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,19 @@ type remoteValidator struct {
2323

2424
func (v *remoteValidator) Validate(cfg config.Config) error {
2525
var errResult error
26+
invalidTrack2Requests := map[string]struct{}{}
2627
for readme, infoMap := range cfg.Track2Requests {
2728
// first we validate whether the readme exists
2829
file, err := v.validateReadmeExistence(readme)
2930
if err != nil {
3031
errResult = errors.Join(errResult, err)
32+
invalidTrack2Requests[readme] = struct{}{}
3133
continue // readme file does not exist, we could just skip all of the other steps of validations
3234
}
3335
// get content of the readme
3436
contentOfReadme, err := file.GetContent()
3537
if err != nil {
38+
invalidTrack2Requests[readme] = struct{}{}
3639
errResult = errors.Join(errResult, fmt.Errorf("cannot get readme.md content: %+v", err))
3740
continue
3841
}
@@ -46,6 +49,7 @@ func (v *remoteValidator) Validate(cfg config.Config) error {
4649
contentOfReadmeGo, err := fileGo.GetContent()
4750
if err != nil {
4851
errResult = errors.Join(errResult, fmt.Errorf("cannot get readme.go.md content: %+v", err))
52+
invalidTrack2Requests[readme] = struct{}{}
4953
continue
5054
}
5155
// get the keys from infoMap, which is the tags
@@ -55,13 +59,18 @@ func (v *remoteValidator) Validate(cfg config.Config) error {
5559
}).ToSlice(&tags)
5660
// check the tags one by one
5761
if err := validateTagsInReadme([]byte(contentOfReadme), readme, tags...); err != nil {
62+
invalidTrack2Requests[readme] = struct{}{}
5863
errResult = errors.Join(errResult, err)
5964
}
6065
// check module-name exist
6166
if err := validateModuleNameInReadmeGo([]byte(contentOfReadmeGo), readme); err != nil {
67+
invalidTrack2Requests[readme] = struct{}{}
6268
errResult = errors.Join(errResult, err)
6369
}
6470
}
71+
for readme, _ := range invalidTrack2Requests {
72+
delete(cfg.Track2Requests, readme)
73+
}
6574
return errResult
6675
}
6776

0 commit comments

Comments
 (0)