Milo Swarmbucket: Use got_revision as revision
The intended effect is that this gets placed in the revision field, which would then become indexed for console view.
BUG=468053
Review-Url: https://codereview.chromium.org/2984143002
diff --git a/milo/buildsource/rawpresentation/logDogBuild.go b/milo/buildsource/rawpresentation/logDogBuild.go
index c4a3de6..668c66d 100644
--- a/milo/buildsource/rawpresentation/logDogBuild.go
+++ b/milo/buildsource/rawpresentation/logDogBuild.go
@@ -15,6 +15,7 @@
package rawpresentation
import (
+ "encoding/json"
"fmt"
"time"
@@ -205,6 +206,7 @@
// TODO(hinoka): This is totes cachable.
buildCompletedTime := google.TimeFromProto(mainAnno.Ended)
build.Summary = *(miloBuildStep(ub, mainAnno, true, buildCompletedTime, now)[0])
+ propMap := map[string]string{}
for _, substepContainer := range mainAnno.Substep {
anno := substepContainer.GetStep()
if anno == nil {
@@ -225,6 +227,7 @@
Key: prop.Name,
Value: prop.Value,
})
+ propMap[prop.Name] = prop.Value
}
build.PropertyGroup = append(build.PropertyGroup, propGroup)
}
@@ -237,8 +240,23 @@
Key: prop.Name,
Value: prop.Value,
})
+ propMap[prop.Name] = prop.Value
}
build.PropertyGroup = append(build.PropertyGroup, propGroup)
+ // HACK(hinoka,iannucci): Extract revision out of properties.
+ if jrev, ok := propMap["got_revision"]; ok {
+ // got_revision is a json string, so it looks like "aaaaaabbcc123..."
+ var rev string
+ err := json.Unmarshal([]byte(jrev), &rev)
+ if err == nil {
+ if build.SourceStamp == nil {
+ build.SourceStamp = &resp.SourceStamp{}
+ }
+ build.SourceStamp.Revision = resp.NewLink(
+ rev, fmt.Sprintf("https://crrev.com/%s", rev))
+ }
+ }
+
return
}