Commit 4e2ea005 authored by Tom Powell's avatar Tom Powell

Include last build time in stats

parent 028304dd
......@@ -105,7 +105,7 @@ class TestWeb(UsesModels):
def test_get(self):
build1 = Build(build_id=1, build_date=datetime.datetime.strptime("2018-01-01", "%Y-%m-%d"), build_status="pending", build_version="cm-14.1")
runner = Runner(runner_name="foobar", runner_id="foobar", runner_sponsor="Me", runner_sponsor_url="You")
build2 = Build(build_id=2, build_status="success", build_device="mako", build_version="cm-14.1", build_type="userdebug", build_date=datetime.datetime.strptime("2018-01-01", "%Y-%m-%d"), build_runner=runner)
build2 = Build(build_id=2, build_status="success", build_device="mako", build_version="cm-14.1", build_type="userdebug", build_date=datetime.datetime.strptime("2018-01-01", "%Y-%m-%d"), build_runner=runner, build_duration=2)
db.session.add(build1)
db.session.add(runner)
db.session.add(build2)
......
......@@ -66,6 +66,14 @@ def stats():
func.sum(models.Build.build_duration)
).group_by(models.Build.build_version).all()
last_build_times = models.Build.query.join(models.Build.build_runner).with_entities(
models.Runner.runner_name,
models.Build.build_version,
models.Build.build_duration
).filter(
models.Build.build_status == "success"
).group_by(models.Runner.runner_name, models.Build.build_version).all()
runner_build_status = models.Build.query.join(models.Build.build_runner).with_entities(
models.Runner.runner_name,
models.Build.build_status,
......@@ -98,6 +106,9 @@ def stats():
'sum': build_time[5] if build_time[5] else 0,
}
for build_time in last_build_times:
stats['times'].setdefault(build_time[0], {})[build_time[1]]["last"] = build_time[2]
for build_status in runner_build_status:
stats['builds']['all'].setdefault(build_status[1], 0)
stats['builds']['all'][build_status[1]] += build_status[2]
......
......@@ -32,6 +32,7 @@
<table class="table table-striped">
<tr>
<th>Runner</th>
<th>Last</th>
<th>Average</th>
<th>Minimum</th>
<th>Maximum</th>
......@@ -41,6 +42,7 @@
{% if runner in stats['times'] and version in stats['times'][runner] %}
<tr>
<td>{% if runner != 'all' %}<a href="/runners/{{runner}}">{{runner}}</a>{% else %}{{runner}}{% endif %}</td>
<td>{% if 'last' in stats['times'][runner][version] %}{{(stats['times'][runner][version]['last'] / 60) | round(2)}} minutes{% endif %}</td>
<td>{{(stats['times'][runner][version]['avg'] / 60) | round(2)}} minutes</td>
<td>{{(stats['times'][runner][version]['min'] / 60) | round(2)}} minutes</td>
<td>{{(stats['times'][runner][version]['max'] / 60) | round(2)}} minutes</td>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment