diff --git a/cover/gather_coverage.sh b/cover/gather_coverage.sh new file mode 100755 index 000000000..9026745a1 --- /dev/null +++ b/cover/gather_coverage.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# This scripts copies all the coverage reports from various circle shards, +# merges them and produces a complete report. + +set -ex +DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +DESTINATION=$1 +FROMDIR=$2 +mkdir -p $DESTINATION + +if [ -n "$CIRCLECI" ]; then + for i in $(seq 1 $(($CIRCLE_NODE_TOTAL - 1))); do + scp node$i:$FROMDIR/* $DESTINATION || true + done +fi + +go get github.com/weaveworks/build-tools/cover +cover $DESTINATION/* >profile.cov +go tool cover -html=profile.cov -o coverage.html +go tool cover -func=profile.cov -o coverage.txt +tar czf coverage.tar.gz $DESTINATION diff --git a/rebuild-image b/rebuild-image index 0eb3cff3c..df3a371c4 100755 --- a/rebuild-image +++ b/rebuild-image @@ -17,12 +17,12 @@ rebuild() { mkdir -p $CACHEDIR rm $CACHEDIR/$SAVEDNAME* || true docker build -t $IMAGENAME $IMAGEDIR - docker save $IMAGENAME:latest > $CACHEDIR/$SAVEDNAME-$CIRCLE_SHA1 + docker save $IMAGENAME:latest | gzip - > $CACHEDIR/$SAVEDNAME-$CIRCLE_SHA1.gz } # Get the revision the cached image was build at cached_image_rev() { - find $CACHEDIR -name "$SAVEDNAME-*" -type f | sed 's/[^\-]*\-//' + find $CACHEDIR -name "$SAVEDNAME-*" -type f | sed -n 's/^[^\-]*\-\([a-z0-9]*\).gz$/\1/p' } # Have there been any revision beween $1 and $2 @@ -60,4 +60,4 @@ fi # we didn't rebuild; import cached version echo ">>> No changes found, importing cached image" -docker load -i $CACHEDIR/$SAVEDNAME-$cached_revision +zcat $CACHEDIR/$SAVEDNAME-$cached_revision.gz | docker load