mirror of
https://source.quilibrium.com/quilibrium/ceremonyclient.git
synced 2024-11-15 04:35:17 +00:00
48 lines
1.4 KiB
Bash
48 lines
1.4 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
# This script runs genhtml (part of lcov) on lcov artifacts generated by the
|
||
|
# code-coverage.sh script and uploads the result to a GCS bucket.
|
||
|
|
||
|
BUCKET="${BUCKET:-crl-codecover-public}"
|
||
|
|
||
|
set -euxo pipefail
|
||
|
|
||
|
publish() {
|
||
|
PROFILE="$1"
|
||
|
TITLE="$2"
|
||
|
|
||
|
if [ ! -f "$PROFILE" ]; then
|
||
|
echo "$PROFILE does not exist"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
DIR="$(date -r "$PROFILE" -u '+%Y-%m-%d %H:%MZ') $(git rev-parse --short=8 HEAD) - $TITLE"
|
||
|
|
||
|
mkdir -p "artifacts/$DIR"
|
||
|
# The filename shows up on the generated page, let's make it useful.
|
||
|
cp "$PROFILE" "artifacts/$DIR.lcov"
|
||
|
genhtml "artifacts/$DIR.lcov" -o "artifacts/$DIR"
|
||
|
|
||
|
gsutil -m cp -Z -r "artifacts/$DIR" "gs://$BUCKET/pebble/$DIR"
|
||
|
}
|
||
|
|
||
|
publish "artifacts/profile-tests.lcov" "tests only"
|
||
|
publish "artifacts/profile-meta.lcov" "meta test only"
|
||
|
publish "artifacts/profile-tests-and-meta.lcov" "tests + meta"
|
||
|
|
||
|
# Regenerate index.html.
|
||
|
echo '<title>Pebble coverage</title><body><h2>Pebble coverage runs:</h2><ul>' > artifacts/index.html
|
||
|
gsutil ls "gs://$BUCKET/pebble" |
|
||
|
sed "s#gs://$BUCKET/pebble/##" |
|
||
|
sed 's#/$##' |
|
||
|
grep -v index.html |
|
||
|
sort -r |
|
||
|
while read -r d; do
|
||
|
echo "<li><a href=\"$d/index.html\">$d</a>" >> artifacts/index.html
|
||
|
done
|
||
|
|
||
|
echo '</ul></body>' >> artifacts/index.html
|
||
|
|
||
|
gsutil cp artifacts/index.html "gs://$BUCKET/pebble/index.html"
|
||
|
gsutil setmeta -h "Cache-Control: public, max-age=300, no-transform" "gs://$BUCKET/pebble/index.html"
|