diff --git a/.travis.yml b/.travis.yml index 2002a731b..e7a062c2f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,3 +4,5 @@ go: go_import_path: github.com/coreos/kube-aws script: - make test +after_success: + - bash <(curl -s https://codecov.io/bash) diff --git a/Makefile b/Makefile index aee7b649e..03ceee9b1 100644 --- a/Makefile +++ b/Makefile @@ -9,6 +9,8 @@ format: .PHONY: test test: build - test -z "$$(find . -path ./vendor -prune -type f -o -name '*.go' -exec gofmt -d {} + | tee /dev/stderr)" - go test -v $$(go list ./... | grep -v '/vendor/') - go vet $$(go list ./... | grep -v '/vendor/') + ./test + +.PHONY: test-with-cover +test-with-cover: build + ./test with-cover diff --git a/test b/test index abb6703b9..84aeb50bf 100755 --- a/test +++ b/test @@ -1,4 +1,26 @@ #!/bin/bash set -euo pipefail -go test $(go list ./... | grep -v '/vendor/') +default() { + test -z "$(find . -path ./vendor -prune -type f -o -name '*.go' -exec gofmt -d {} + | tee /dev/stderr)" + go test -v $(go list ./... | grep -v '/vendor/') + go vet $(go list ./... | grep -v '/vendor/') +} + +with-cover() { + test -z "$(find . -path ./vendor -prune -type f -o -name '*.go' -exec gofmt -d {} + | tee /dev/stderr)" + for d in $(go list ./... | grep -v '/vendor/'); do + go test -v --race -coverprofile=profile.out -covermode=atomic $d + if [ -f profile.out ]; then + cat profile.out >> coverage.txt + rm profile.out + fi + done + go vet $(go list ./... | grep -v '/vendor/') +} + +if [ -z ${1+x} ]; then + default +else + "$@" +fi