Compare commits

...

2 Commits

Author SHA1 Message Date
6fed13ee0e Also accepts step key to be step name
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-06 18:19:11 +01:00
b1ad293810 Expect avant-last line to be + echo grade 2023-03-06 18:18:52 +01:00

View File

@ -74,18 +74,27 @@ func (r *Repository) fetchRepoTests(build_number int, steps map[string]float64)
continue 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) logs, err := client.Logs(tmp[0], tmp[1], build_number, stage.Number, step.Number)
if err != nil { 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()) 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())
continue continue
} }
if len(logs) < 1 { if len(logs) < 2 {
continue continue
} }
line := logs[len(logs)-1] 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) g, err := strconv.ParseFloat(strings.TrimSpace(strings.TrimPrefix(line.Message, "grade:")), 64)
if err == nil { if err == nil {
grade += g grade += g