annotate SCRIPTS/summarise.sh @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents 9efd2d15cd58
children
rev   line source
Chris@71 1 #!/bin/bash
Chris@71 2
Chris@122 3 set -e
Chris@122 4
Chris@71 5 mydir=$(dirname "$0")
Chris@71 6 case "$mydir" in /*);; *) mydir=$(pwd)/"$mydir";; esac
Chris@71 7
Chris@75 8 . "$mydir"/include.sh
Chris@75 9
Chris@71 10 plugindirs="$@"
Chris@71 11 if [ -z "$plugindirs" ]; then
Chris@122 12 plugindirs=$(ls -1 REPOS | grep -v vamp-plugin-sdk | grep -v vamp-plugin-tester | awk '{ print $1; }')
Chris@71 13 else
Chris@71 14 for dir in $plugindirs ; do
Chris@71 15 if [ ! -d "$dir" ]; then
Chris@71 16 echo "ERROR: Directory $dir not found"
Chris@71 17 usage
Chris@71 18 fi
Chris@71 19 done
Chris@71 20 fi
Chris@71 21
Chris@122 22 set -u
Chris@122 23
Chris@71 24 platforms=$(echo REPORTS/[a-z]* | sed 's/REPORTS\///g')
Chris@71 25
Chris@71 26 cat <<EOF
Chris@71 27 <head>
Chris@71 28 <style type="text/css">
Chris@71 29 .good { color: blue; }
Chris@75 30 .dl { color: green; }
Chris@71 31 .bad { color: red; }
Chris@75 32 table { border: 1px solid black; }
Chris@75 33 tr { padding: 0px; background-color: #f0f0f0; }
Chris@75 34 tr.odd { background-color: #fafafa; }
Chris@75 35 td, th { text-align: center; min-width: 4em; margin: 0px; padding: 0.4em; }
Chris@75 36 td.pluginname { text-align: right; }
Chris@75 37 td.build, th.build { border-left: 1px solid black; }
Chris@75 38 th { border-bottom: 1px solid black; }
Chris@71 39 a, a:link, a:visited, a:hover, a:active { text-decoration: none; }
Chris@71 40 </style>
Chris@71 41 </head>
Chris@71 42 <body>
Chris@75 43 <table cellspacing=0>
Chris@75 44 <tr><th></th>
Chris@71 45 EOF
Chris@71 46
Chris@71 47 for p in $platforms ; do
Chris@75 48 echo "<th colspan=4 class=build>$p</th>"
Chris@71 49 done
Chris@71 50
Chris@75 51 echo "</tr>"
Chris@75 52 echo "<tr><td></td>"
Chris@75 53
Chris@75 54 for p in $platforms ; do
Chris@75 55 echo "<th class=build>Build</th>"
Chris@75 56 echo "<th>Test</th>"
Chris@75 57 echo "<th>Check</th>"
Chris@75 58 echo "<th>Package</th>"
Chris@75 59 done
Chris@75 60
Chris@75 61 echo "</tr>"
Chris@71 62
Chris@71 63 yes="<span class=good>&#x2714;</span>"
Chris@71 64 no="<span class=bad>&#x2718;</span>"
Chris@71 65 unknown="<span class=unknown>?</span>"
Chris@78 66 missing=""
Chris@75 67 dl="<span class=dl>&#x21a7;</span>"
Chris@71 68
Chris@75 69 # The possible outcomes are:
Chris@75 70 #
Chris@75 71 # OK - built, passed tests, passed env checks
Chris@75 72 # BUILD_FAILED - build failed so unable to test
Chris@75 73 # TEST_FAILED - build succeeded, tests failed, env checks passed
Chris@75 74 # ENV_FAILED - build succeeded, tests passed, env checks failed
Chris@75 75 # TEST_FAILED ENV_FAILED - build succeeded, tests and env checks failed
Chris@75 76
Chris@75 77 emit_build() {
Chris@75 78 reportdir="$1"
Chris@75 79 dir="$2"
Chris@75 80 outcome="$3"
Chris@75 81 echo "<a href='$reportdir/$dir.build.txt'>"
Chris@75 82 case "$outcome" in
Chris@75 83 BUILD_FAILED) echo "$no";;
Chris@75 84 *_FAILED*) echo "$yes";;
Chris@75 85 OK) echo "$yes";;
Chris@75 86 *) echo "$unknown";;
Chris@75 87 esac
Chris@75 88 echo "</a>"
Chris@75 89 }
Chris@75 90
Chris@75 91 emit_test() {
Chris@75 92 reportdir="$1"
Chris@75 93 dir="$2"
Chris@75 94 outcome="$3"
Chris@75 95 case "$outcome" in
Chris@75 96 BUILD_FAILED) echo "$missing";;
Chris@75 97 *)
Chris@71 98 echo "<a href='$reportdir/$dir.test.txt'>"
Chris@71 99 case "$outcome" in
Chris@71 100 *TEST_FAILED*) echo "$no";;
Chris@71 101 *_FAILED*) echo "$yes";;
Chris@71 102 OK) echo "$yes";;
Chris@71 103 *) echo "$unknown";;
Chris@71 104 esac
Chris@75 105 echo "</a>" ;;
Chris@75 106 esac
Chris@75 107 }
Chris@75 108
Chris@75 109 emit_env() {
Chris@75 110 reportdir="$1"
Chris@75 111 dir="$2"
Chris@75 112 outcome="$3"
Chris@75 113 echo "<a href='$reportdir/$dir.envtest.txt'>"
Chris@75 114 case "$outcome" in
Chris@75 115 BUILD_FAILED) echo "$missing";;
Chris@75 116 *)
Chris@71 117 echo "<a href='$reportdir/$dir.envtest.txt'>"
Chris@71 118 case "$outcome" in
Chris@75 119 *ENV_FAILED*) echo "$no";;
Chris@75 120 *FAILED*) echo "$yes";;
Chris@71 121 OK) echo "$yes";;
Chris@71 122 *) echo "$unknown";;
Chris@71 123 esac
Chris@75 124 echo "</a>" ;;
Chris@75 125 esac
Chris@75 126 }
Chris@75 127
Chris@75 128 emit_package() {
Chris@75 129 platform="$1"
Chris@75 130 dir="$2"
Chris@75 131 outcome="$3"
Chris@75 132 case "$outcome" in
Chris@75 133 OK)
Chris@122 134 id=$(vcs_id "REPOS/$dir")
Chris@75 135 package=$(echo "PACKAGES/$platform/$dir-$platform-$id".*)
Chris@75 136 echo "package is $package" 1>&2
Chris@75 137 if [ -f "$package" ]; then
Chris@75 138 echo "<a href='$package'>$dl</a>"
Chris@75 139 fi
Chris@75 140 ;;
Chris@75 141 *) ;;
Chris@75 142 esac
Chris@75 143 }
Chris@75 144
Chris@75 145 oddeven=odd
Chris@75 146
Chris@75 147 for dir in $plugindirs ; do
Chris@75 148 dir=${dir%/*}
Chris@75 149 echo "<tr class=$oddeven><td class=pluginname>$dir</td>"
Chris@75 150 for p in $platforms ; do
Chris@75 151 reportdir="REPORTS/$p"
Chris@75 152 summary="$reportdir/$dir.summary.txt"
Chris@75 153 if [ -f "$summary" ]; then
Chris@75 154 outcome=$(cat "$summary" | awk -F: '{ print $2; }' | sed 's/^ *//' | fmt -100)
Chris@75 155 echo "<td class=build>"
Chris@75 156 emit_build "$reportdir" "$dir" "$outcome"
Chris@75 157 echo "</td><td>"
Chris@75 158 emit_test "$reportdir" "$dir" "$outcome"
Chris@75 159 echo "</td><td>"
Chris@75 160 emit_env "$reportdir" "$dir" "$outcome"
Chris@75 161 echo "</td><td>"
Chris@75 162 emit_package "$p" "$dir" "$outcome"
Chris@75 163 echo "</td>"
Chris@71 164 else
Chris@75 165 echo "<td class=build>$missing</td>"
Chris@75 166 echo "<td>$missing</td>"
Chris@75 167 echo "<td>$missing</td>"
Chris@75 168 echo "<td>$missing</td>"
Chris@71 169 fi
Chris@71 170 done
Chris@71 171 echo "</tr>"
Chris@75 172 if [ "$oddeven" = odd ]; then
Chris@75 173 oddeven=even
Chris@75 174 else
Chris@75 175 oddeven=odd
Chris@75 176 fi
Chris@71 177 done
Chris@71 178
Chris@71 179 echo "</table></body>"