summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorMattia Rizzolo <mattia@debian.org>2017-01-19 11:56:24 +0100
committerHolger Levsen <holger@layer-acht.org>2017-01-19 13:21:15 +0100
commit63dd7188c7608c7f90a0e4d2b2e4ed2d4ae5baf7 (patch)
treed3b73e361b371a934ae2e82568fdfe470172afb3 /bin
parenta23cbd52bb7273f45eeff6b68e1e5a9af116fe52 (diff)
downloadjenkins.debian.net-63dd7188c7608c7f90a0e4d2b2e4ed2d4ae5baf7.tar.xz
reproducible debian: html_dashboard: DRY: factor out _average_builds_per_day and automatically deal with auto-hiding stats for very new archs
Signed-off-by: Holger Levsen <holger@layer-acht.org>
Diffstat (limited to 'bin')
-rwxr-xr-xbin/reproducible_html_dashboard.sh64
1 files changed, 33 insertions, 31 deletions
diff --git a/bin/reproducible_html_dashboard.sh b/bin/reproducible_html_dashboard.sh
index c5d19e36..fdbeb7ed 100755
--- a/bin/reproducible_html_dashboard.sh
+++ b/bin/reproducible_html_dashboard.sh
@@ -294,6 +294,35 @@ write_usertag_table() {
#
# write build performance stats
#
+_average_builds_per_day() {
+ local TIMESPAN_RAW="$1"
+ local TIMESPAN_VERBOSE="$2"
+ local MIN_DAYS="${3-0}"
+ write_page "<tr><td class=\"left\">packages tested on average per day in the last $TIMESPAN_VERBOSE</td>"
+ for ARCH in ${ARCHS} ; do
+ local OLDEST_BUILD="$(query_db "SELECT build_date FROM stats_build WHERE architecture='$ARCH' ORDER BY build_date ASC LIMIT 1")"
+ local DAY_DIFFS="$(( ($(date -d "$DATE" +%s) - $(date -d "$OLDEST_BUILD" +%s)) / (60*60*24) ))"
+ if [ $DAY_DIFFS -lt $TIMESPAN_RAW ]; then
+ # this is a new architecture, there are fewer days to compare to.
+ local DISCLAIMER=" <span style=\"font-size: 0.8em;\">(in the last $DAY_DIFFS days)</span>"
+ TIMESPAN_RAW=$DAY_DIFF
+ fi
+ if [ $DAY_DIFFS -ge $MIN_DAYS ]; then
+ # find stats for since the day before $TIMESPAN_RAW days ago,
+ # since no stats exist for today yet.
+ local TIMESPAN="$(echo $TIMESPAN_RAW-1|bc)"
+ local TIMESPAN_DATE=$(date '+%Y-%m-%d %H:%M' -d "- $TIMESPAN days")
+
+ RESULT=$(query_db "SELECT COUNT(r.build_date) FROM stats_build AS r WHERE r.build_date > '$TIMESPAN_DATE' AND r.architecture='$ARCH'")
+ RESULT="$(echo $RESULT/$TIMESPAN_RAW|bc)"
+ else
+ # very new arch with too few resulsts to care about stats
+ RESULT="&nbsp;"
+ fi
+ write_page "<td>${RESULT}${DISCLAIMER:-}</td>"
+ done
+ write_page "</tr>"
+}
write_build_performance_stats() {
local ARCH
write_page "<table class=\"main\"><tr><th>Architecture build statistics</th>"
@@ -340,39 +369,12 @@ write_build_performance_stats() {
RESULT=$(query_db "SELECT COUNT(r.build_date) FROM stats_build AS r WHERE r.build_date > '$(date '+%Y-%m-%d %H:%M' -d '-1 days')' AND r.architecture='$ARCH'")
write_page "<td>$RESULT</td>"
done
- write_page "</tr><tr><td class=\"left\">packages tested on average per day in the last $TIMESPAN_VERBOSE</td>"
- for ARCH in ${ARCHS} ; do
- local OLDEST_BUILD="$(query_db "SELECT build_date FROM stats_build WHERE architecture='$ARCH' ORDER BY build_date ASC LIMIT 1")"
- local DAY_DIFFS="$(( ($(date -d "$DATE" +%s) - $(date -d "$OLDEST_BUILD" +%s)) / (60*60*24) ))"
- if [ $DAY_DIFFS -lt $TIMESPAN_RAW ]; then
- # this is a new architecture, there are fewer days to compare to.
- local DISCLAIMER=" <span style=\"font-size: 0.8em;\">(in the last $DAY_DIFFS days)</span>"
- TIMESPAN_RAW=$DAY_DIFF
- fi
- local TIMESPAN="$(echo $TIMESPAN_RAW-1|bc)"
- local TIMESPAN_DATE=$(date '+%Y-%m-%d %H:%M' -d "- $TIMESPAN days")
-
- RESULT=$(query_db "SELECT COUNT(r.build_date) FROM stats_build AS r WHERE r.build_date > '$TIMESPAN_DATE' AND r.architecture='$ARCH'")
- RESULT="$(echo $RESULT/$TIMESPAN_RAW|bc)"
- write_page "<td>${RESULT}${DISCLAIMER:-}</td>"
- done
+ write_page "</tr>"
+ _average_builds_per_day "$TIMESTAMP_RAW" "$TIMESTAMP_VERBOSE"
+ _average_builds_per_day "91" "3 months" "30"
- local TIMESPAN_VERBOSE="3 months"
- local TIMESPAN_RAW="91"
- # Find stats for 91 days since yesterday, no stats exist for today
- local TIMESPAN="$(echo $TIMESPAN_RAW-1|bc)"
- local TIMESPAN_DATE=$(date '+%Y-%m-%d %H:%M' -d "- $TIMESPAN days")
- write_page "</tr><tr><td class=\"left\">packages tested on average per day in the last $TIMESPAN_VERBOSE</td>"
- for ARCH in ${ARCHS} ; do
- RESULT=$(query_db "SELECT COUNT(r.build_date) FROM stats_build AS r WHERE r.build_date > '$TIMESPAN_DATE' AND r.architecture='$ARCH'")
- RESULT="$(echo $RESULT/$TIMESPAN_RAW|bc)"
- if [ "$ARCH" = "arm64" ] ; then
- RESULT="&nbsp;"
- fi
- write_page "<td>$RESULT</td>"
- done
- write_page "</tr></table>"
+ write_page "</table>"
}
#