diff --git a/.gitignore b/.gitignore index 4a65c2279c..09d363d1ce 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ /build/ cli/winresources/rsrc_386.syso cli/winresources/rsrc_amd64.syso +coverage.txt +profile.out diff --git a/Makefile b/Makefile index 566da5a636..3320659709 100644 --- a/Makefile +++ b/Makefile @@ -14,6 +14,19 @@ clean: test: go test -tags daemon -v $(shell go list ./... | grep -v /vendor/) +.PHONY: test-coverage +test-coverage: + for pkg in $(shell go list ./... | grep -v /vendor/); do \ + go test -tags daemon -v -cover -parallel 8 -coverprofile=profile.out -covermode=atomic $${pkg} || exit 1; \ + if test -f profile.out; then \ + cat profile.out >> coverage.txt && rm profile.out; \ + fi; \ + done + +.PHONY: codecov +codecov: + $(shell curl -s https://codecov.io/bash | bash) + .PHONY: lint lint: gometalinter --config gometalinter.json ./... diff --git a/circle.yml b/circle.yml index e791bb93bf..be160473e1 100644 --- a/circle.yml +++ b/circle.yml @@ -35,7 +35,7 @@ jobs: dockerfile=dockerfiles/Dockerfile.dev echo "COPY . ." >> $dockerfile docker build -f $dockerfile --tag cli-builder . - docker run cli-builder make test + docker run cli-builder make test-coverage codecov - run: name: "Validate Vendor and Code Generation" command: | diff --git a/dockerfiles/Dockerfile.dev b/dockerfiles/Dockerfile.dev index a14ea25f29..2886ed5e1a 100644 --- a/dockerfiles/Dockerfile.dev +++ b/dockerfiles/Dockerfile.dev @@ -1,7 +1,7 @@ FROM golang:1.8-alpine -RUN apk add -U git make bash coreutils +RUN apk add -U git make bash coreutils curl RUN go get github.com/LK4D4/vndr && \ cp /go/bin/vndr /usr/bin && \