feat(healthcheck): remove redundant tag checker
All checks were successful
build / build (push) Successful in 1m3s
build / trigger-build-image (push) Successful in 7s

This commit is contained in:
张泊明518370910136 2024-10-13 04:37:52 -04:00
parent 92d88091ff
commit bb3743d4cc
GPG Key ID: D47306D7062CDA9D
2 changed files with 0 additions and 93 deletions

View File

@ -41,7 +41,6 @@ var Version string
func main() {
var gitWhitelist, metaFile []string
showVersion := flag.Bool("version", false, "print current version")
checkRelease := flag.Bool("checkRelease", true, "trigger release check")
rootDir := flag.String("root", "", "")
repo := flag.String("repo", "", "")
size := flag.Float64("reposize", 2, "size of the repo")
@ -78,10 +77,6 @@ func main() {
if err != nil {
fmt.Printf("### Non-ASCII Characters Commit Message Check Failed:\n%s\n", err.Error())
}
err = healthcheck.CheckTags(*rootDir, *checkRelease)
if err != nil {
fmt.Printf("### Release Tag Check Failed:\n%s\n", err.Error())
}
err = healthcheck.VerifyFiles(*rootDir, *checkFileNameList, *checkFileSumList)
if err != nil {
fmt.Printf("### Repo File Check Failed:\n%s\n", err.Error())

View File

@ -1,88 +0,0 @@
package healthcheck
import (
"fmt"
"regexp"
"strings"
"github.com/go-git/go-git/v5"
"github.com/go-git/go-git/v5/plumbing"
"github.com/joint-online-judge/JOJ3/cmd/joj3/conf"
)
func parseConventionalCommit(commit string) (*conf.ConventionalCommit, error) {
re := regexp.MustCompile(`(?s)^(\w+)(\(([^)]+)\))?!?: (.+?)(\n\n(.+?))?(\n\n(.+))?$`)
matches := re.FindStringSubmatch(strings.TrimSpace(commit))
if matches == nil {
return nil, fmt.Errorf("invalid conventional commit format")
}
cc := &conf.ConventionalCommit{
Type: matches[1],
Scope: matches[3],
Description: strings.TrimSpace(matches[4]),
Body: strings.TrimSpace(matches[6]),
Footer: strings.TrimSpace(matches[8]),
}
return cc, nil
}
func getTagFromMsg() (tag string, err error) {
msg, err := conf.GetCommitMsg()
if err != nil {
return "", err
}
conventionalCommit, err := parseConventionalCommit(msg)
if err != nil {
return "", err
}
return conventionalCommit.Scope, err
}
func getTagsFromRepo(repoPath string) ([]string, error) {
repo, err := git.PlainOpen(repoPath)
if err != nil {
return nil, fmt.Errorf("error opening repo: %v", err)
}
refs, err := repo.Tags()
if err != nil {
return nil, fmt.Errorf("error getting tags: %v", err)
}
var tags []string
err = refs.ForEach(func(ref *plumbing.Reference) error {
tags = append(tags, ref.Name().Short())
return nil
})
if err != nil {
return nil, fmt.Errorf("error iterating tags: %v", err)
}
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)
}
found := false
for _, tag := range tags {
if tag == target {
found = true
break
}
}
if !found {
return fmt.Errorf("Wrong release tag in '%s' or missing release tags. Please use '%s'.", strings.Join(tags, "', '"), target)
}
return nil
}