feat(ci): setup test coverage reports with coveralls.io

pull/940/head
Adam Reese 8 years ago
parent b080e944d5
commit ebffaadba7

@ -22,13 +22,22 @@ IFS=$'\n\t'
HELM_ROOT="${BASH_SOURCE[0]%/*}/.."
cd "$HELM_ROOT"
case "${CIRCLE_NODE_INDEX-0}" in
0)
echo "Running 'make test-unit'"
run_unit_test() {
if [[ "${CIRCLE_BRANCH-}" == "master" ]]; then
echo "Running unit tests with coverage'"
./scripts/coverage.sh --coveralls
else
echo "Running unit tests'"
make test-unit
;;
1)
echo "Running 'make test-style'"
make test-style
;;
fi
}
run_style_check() {
echo "Running 'make test-style'"
make test-style
}
case "${CIRCLE_NODE_INDEX-0}" in
0) run_unit_test ;;
1) run_style_check ;;
esac

@ -16,22 +16,35 @@
set -euo pipefail
COVERDIR=${COVERDIR:-.coverage}
COVERMODE=${COVERMODE:-atomic}
PACKAGES=($(go list $(glide novendor)))
covermode=${COVERMODE:-atomic}
coverdir=$(mktemp -d /tmp/coverage.XXXXXXXXXX)
profile="${coverdir}/cover.out"
if [[ ! -d "$COVERDIR" ]]; then
mkdir -p "$COVERDIR"
fi
hash goveralls 2>/dev/null || go get github.com/mattn/goveralls
echo "mode: ${COVERMODE}" > "${COVERDIR}/coverage.out"
generate_cover_data() {
for d in $(godir) ; do
local output="${coverdir}/${d//\//-}.cover"
go test -coverprofile="${output}" -covermode="$covermode" "$d"
done
for d in "${PACKAGES[@]}"; do
go test -coverprofile=profile.out -covermode="$COVERMODE" "$d"
if [ -f profile.out ]; then
sed "/mode: $COVERMODE/d" profile.out >> "${COVERDIR}/coverage.out"
rm profile.out
fi
done
echo "mode: $covermode" >"$profile"
grep -h -v "^mode:" "$coverdir"/*.cover >>"$profile"
}
push_to_coveralls() {
goveralls -coverprofile="${profile}" -service=circle-ci
}
generate_cover_data
go tool cover -func "${profile}"
case "$1" in
--html)
go tool cover -html "${profile}"
;;
--coveralls)
push_to_coveralls
;;
esac
go tool cover -html "${COVERDIR}/coverage.out" -o "${COVERDIR}/coverage.html"

Loading…
Cancel
Save