diff --git a/cmd/joj3/teapot/run.go b/cmd/joj3/teapot/run.go index 329c221..7c2a240 100644 --- a/cmd/joj3/teapot/run.go +++ b/cmd/joj3/teapot/run.go @@ -21,8 +21,7 @@ func Run(conf *conf.Conf) error { os.Setenv("LOG_FILE_PATH", conf.Teapot.LogPath) os.Setenv("_TYPER_STANDARD_TRACEBACK", "1") envFilePath := "/home/tt/.config/teapot/teapot.env" - // TODO: pass sha to joint-teapot - // sha := os.Getenv("GITHUB_SHA") + sha := os.Getenv("GITHUB_SHA") actor := os.Getenv("GITHUB_ACTOR") repository := os.Getenv("GITHUB_REPOSITORY") runNumber := os.Getenv("GITHUB_RUN_NUMBER") @@ -55,7 +54,7 @@ func Run(conf *conf.Conf) error { err := execCommand("joint-teapot", []string{ "joj3-scoreboard", envFilePath, conf.Stage.OutputPath, actor, conf.Teapot.GradingRepoName, repoName, runNumber, - conf.Teapot.ScoreboardPath, conf.Name, + conf.Teapot.ScoreboardPath, conf.Name, sha, }) if err != nil { scoreboardErr = err @@ -65,7 +64,7 @@ func Run(conf *conf.Conf) error { err := execCommand("joint-teapot", []string{ "joj3-failed-table", envFilePath, conf.Stage.OutputPath, actor, conf.Teapot.GradingRepoName, repoName, runNumber, - conf.Teapot.FailedTablePath, conf.Name, + conf.Teapot.FailedTablePath, conf.Name, sha, }) if err != nil { failedTableErr = err @@ -77,7 +76,7 @@ func Run(conf *conf.Conf) error { if !conf.Teapot.SkipIssue { err := execCommand("joint-teapot", []string{ "joj3-create-result-issue", envFilePath, conf.Stage.OutputPath, - repoName, runNumber, conf.Name, + repoName, runNumber, conf.Name, actor, sha, }) if err != nil { issueErr = err diff --git a/internal/parser/clangtidy/convert.go b/internal/parser/clangtidy/convert.go index 88e87e3..c6ea7c3 100644 --- a/internal/parser/clangtidy/convert.go +++ b/internal/parser/clangtidy/convert.go @@ -6,6 +6,7 @@ import ( "path/filepath" "regexp" "strconv" + "strings" ) type Level int @@ -68,6 +69,9 @@ func levelFromString(levelString string) Level { } func isIgnored(line string) bool { + if strings.TrimSpace(line) == "" { + return true + } ignoreRegex := regexp.MustCompile("^error:.*$") return ignoreRegex.MatchString(line) } diff --git a/internal/parser/clangtidy/parser.go b/internal/parser/clangtidy/parser.go index 51661ed..85ca466 100644 --- a/internal/parser/clangtidy/parser.go +++ b/internal/parser/clangtidy/parser.go @@ -24,11 +24,6 @@ type ClangTidy struct{} func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult { stdout := executorResult.Files["stdout"] stderr := executorResult.Files["stderr"] - - lines := strings.SplitAfter(stdout, "\n") - messages := ParseLines(lines, conf) - formattedMessages := Format(messages) - if executorResult.Status != stage.Status(envexec.StatusAccepted) { if !((executorResult.Status == stage.Status(envexec.StatusNonzeroExitStatus)) && (executorResult.ExitStatus == 1)) { @@ -41,6 +36,9 @@ func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult { } } } + lines := strings.SplitAfter(stdout, "\n") + messages := ParseLines(lines, conf) + formattedMessages := Format(messages) score, comment := GetResult(formattedMessages, conf) return stage.ParserResult{ Score: score, diff --git a/internal/parser/resultdetail/parser.go b/internal/parser/resultdetail/parser.go index 0d946c8..eb15bb1 100644 --- a/internal/parser/resultdetail/parser.go +++ b/internal/parser/resultdetail/parser.go @@ -33,6 +33,9 @@ func (*ResultDetail) Run(results []stage.ExecutorResult, confAny any) ( comment += fmt.Sprintf("Exit Status: `%d`\n", result.ExitStatus) } if conf.ShowError { + if result.Error == "" { + result.Error = "nil" + } comment += fmt.Sprintf("Error: `%s`\n", result.Error) } if conf.ShowTime {