From b1ad293810e8a777585b0a3f88980a547ebd49ac Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 6 Mar 2023 18:18:52 +0100 Subject: [PATCH 1/2] Expect avant-last line to be + echo grade --- gradation.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradation.go b/gradation.go index 4acf203..8ad1c70 100644 --- a/gradation.go +++ b/gradation.go @@ -80,12 +80,12 @@ func (r *Repository) fetchRepoTests(build_number int, steps map[string]float64) continue } - if len(logs) < 1 { + if len(logs) < 2 { continue } line := logs[len(logs)-1] - if strings.HasPrefix(line.Message, "grade:") { + if strings.HasPrefix(logs[len(logs)-2].Message, "+ echo grade:") && strings.HasPrefix(line.Message, "grade:") { g, err := strconv.ParseFloat(strings.TrimSpace(strings.TrimPrefix(line.Message, "grade:")), 64) if err == nil { grade += g From 6fed13ee0e563fd4f557c44944ec53c48146da2b Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 6 Mar 2023 18:19:11 +0100 Subject: [PATCH 2/2] Also accepts step key to be step name --- gradation.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/gradation.go b/gradation.go index 8ad1c70..89ed9f6 100644 --- a/gradation.go +++ b/gradation.go @@ -74,6 +74,15 @@ func (r *Repository) fetchRepoTests(build_number int, steps map[string]float64) continue } + if g, ok := steps[step.Name]; ok { + log.Printf("Step %q (%d) in status %q", step.Name, step.Number, step.Status) + // Give the point if it succeed + if step.Status == "success" { + grade += g + } + continue + } + logs, err := client.Logs(tmp[0], tmp[1], build_number, stage.Number, step.Number) if err != nil { log.Printf("Unable to retrieve build logs %s/%s/%d/%d/%d: %s", tmp[0], tmp[1], build_number, stage.Number, step.Number, err.Error())