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]%/*}/.." HELM_ROOT="${BASH_SOURCE[0]%/*}/.."
cd "$HELM_ROOT" cd "$HELM_ROOT"
case "${CIRCLE_NODE_INDEX-0}" in run_unit_test() {
0) if [[ "${CIRCLE_BRANCH-}" == "master" ]]; then
echo "Running 'make test-unit'" echo "Running unit tests with coverage'"
./scripts/coverage.sh --coveralls
else
echo "Running unit tests'"
make test-unit make test-unit
;; fi
1) }
run_style_check() {
echo "Running 'make test-style'" echo "Running 'make test-style'"
make test-style make test-style
;; }
case "${CIRCLE_NODE_INDEX-0}" in
0) run_unit_test ;;
1) run_style_check ;;
esac esac

@ -16,22 +16,35 @@
set -euo pipefail set -euo pipefail
COVERDIR=${COVERDIR:-.coverage} covermode=${COVERMODE:-atomic}
COVERMODE=${COVERMODE:-atomic} coverdir=$(mktemp -d /tmp/coverage.XXXXXXXXXX)
PACKAGES=($(go list $(glide novendor))) profile="${coverdir}/cover.out"
if [[ ! -d "$COVERDIR" ]]; then hash goveralls 2>/dev/null || go get github.com/mattn/goveralls
mkdir -p "$COVERDIR"
fi generate_cover_data() {
for d in $(godir) ; do
echo "mode: ${COVERMODE}" > "${COVERDIR}/coverage.out" local output="${coverdir}/${d//\//-}.cover"
go test -coverprofile="${output}" -covermode="$covermode" "$d"
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 done
go tool cover -html "${COVERDIR}/coverage.out" -o "${COVERDIR}/coverage.html" 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

Loading…
Cancel
Save