feat(healthcheck/releasetag): recommended tag listcheck
This commit is contained in:
parent
b46e22471f
commit
1e0cbb48f0
|
@ -61,19 +61,8 @@ func getTagsFromRepo(repoPath string) ([]string, error) {
|
|||
return tags, nil
|
||||
}
|
||||
|
||||
func CheckTags(repoPath string, skip bool) error {
|
||||
if skip {
|
||||
return nil
|
||||
}
|
||||
tags, err := getTagsFromRepo(repoPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting tags from repo: %v", err)
|
||||
}
|
||||
|
||||
target, err := getTagFromMsg()
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting tag from msg scope: %v", err)
|
||||
}
|
||||
// INFO: check whether release tag consistent with last commit msg scope
|
||||
func checkConsist(tags []string, target string) (err error) {
|
||||
found := false
|
||||
for _, tag := range tags {
|
||||
if tag == target {
|
||||
|
@ -86,3 +75,54 @@ func CheckTags(repoPath string, skip bool) error {
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// INFO: check whether release tag follow the tag list we give
|
||||
func checkStyle(tags []string, category string, n int) (err error) {
|
||||
var prefix string
|
||||
switch category {
|
||||
case "exam":
|
||||
prefix = "e"
|
||||
case "project":
|
||||
prefix = "p"
|
||||
case "homework":
|
||||
prefix = "h"
|
||||
default:
|
||||
prefix = "a"
|
||||
}
|
||||
target := prefix + fmt.Sprintf("%d", n)
|
||||
found := false
|
||||
for _, tag := range tags {
|
||||
if tag == target {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !found {
|
||||
return fmt.Errorf("Wrong release tag '%s' or missing release tags. Please use one of '%s'.", strings.Join(tags, "', '"), target)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func CheckTags(repoPath string, skip bool, category string, n int) error {
|
||||
if skip {
|
||||
return nil
|
||||
}
|
||||
tags, err := getTagsFromRepo(repoPath)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting tags from repo: %v", err)
|
||||
}
|
||||
|
||||
target, err := getTagFromMsg()
|
||||
if err != nil {
|
||||
return fmt.Errorf("error getting tag from msg scope: %v", err)
|
||||
}
|
||||
err = checkConsist(tags, target)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = checkStyle(tags, category, n)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user