From 4e2ea00515ac998dea2175ada2c984ad401604f1 Mon Sep 17 00:00:00 2001 From: Tom Powell Date: Sat, 3 Nov 2018 19:34:38 -0700 Subject: [PATCH] Include last build time in stats --- test.py | 2 +- ui/app.py | 11 +++++++++++ ui/templates/stats.html | 2 ++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/test.py b/test.py index a73f5d3..f2bf351 100644 --- a/test.py +++ b/test.py @@ -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) diff --git a/ui/app.py b/ui/app.py index 7015548..3a197fa 100644 --- a/ui/app.py +++ b/ui/app.py @@ -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] diff --git a/ui/templates/stats.html b/ui/templates/stats.html index f34ee8c..8e121f0 100644 --- a/ui/templates/stats.html +++ b/ui/templates/stats.html @@ -32,6 +32,7 @@ + @@ -41,6 +42,7 @@ {% if runner in stats['times'] and version in stats['times'][runner] %} + -- 2.20.1
RunnerLast Average Minimum Maximum
{% if runner != 'all' %}{{runner}}{% else %}{{runner}}{% endif %}{% if 'last' in stats['times'][runner][version] %}{{(stats['times'][runner][version]['last'] / 60) | round(2)}} minutes{% endif %} {{(stats['times'][runner][version]['avg'] / 60) | round(2)}} minutes {{(stats['times'][runner][version]['min'] / 60) | round(2)}} minutes {{(stats['times'][runner][version]['max'] / 60) | round(2)}} minutes