#!/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 'Pebble coverage

Pebble coverage runs:

' >> 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"