Upload coverage report from outside of test container.

Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
Daniel Nephin 2017-05-18 10:42:05 -04:00
parent d79d903864
commit f6d148c632
5 changed files with 27 additions and 14 deletions

View File

@ -12,20 +12,11 @@ clean:
# the "-tags daemon" part is temporary
.PHONY: test
test:
go test -tags daemon -v $(shell go list ./... | grep -v /vendor/)
./scripts/test/unit $(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)
./scripts/test/unit-with-coverage
.PHONY: lint
lint:

View File

@ -29,13 +29,16 @@ jobs:
docker run --name cross cli-builder make cross
docker cp cross:/go/src/github.com/docker/cli/build /work/build
- run:
name: "Unit Test"
name: "Unit Test with Coverage"
command: |
if [ "$CIRCLE_NODE_INDEX" != "2" ]; then exit; fi
dockerfile=dockerfiles/Dockerfile.dev
echo "COPY . ." >> $dockerfile
docker build -f $dockerfile --tag cli-builder .
docker run cli-builder make test-coverage codecov
docker run --name test cli-builder make test-coverage
docker cp test:/go/src/github.com/docker/cli/coverage.txt coverage.txt
apk add -U bash curl
curl -s https://codecov.io/bash | bash
- run:
name: "Validate Vendor and Code Generation"
command: |

View File

@ -1,7 +1,7 @@
FROM golang:1.8-alpine
RUN apk add -U git make bash coreutils curl
RUN apk add -U git make bash coreutils
RUN go get github.com/LK4D4/vndr && \
cp /go/bin/vndr /usr/bin && \

4
scripts/test/unit Executable file
View File

@ -0,0 +1,4 @@
#!/usr/bin/env bash
set -eu -o pipefail
go test -tags daemon -v $@

15
scripts/test/unit-with-coverage Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -eu -o pipefail
for pkg in $(go list ./... | grep -v /vendor/); do
./scripts/test/unit \
-cover \
-coverprofile=profile.out \
-covermode=atomic \
${pkg}
if test -f profile.out; then
cat profile.out >> coverage.txt
rm profile.out
fi
done