Explorar o código

Merge pull request #50 from dave-tucker/badges

Test Coverage and Build Status
Madhu Venugopal %!s(int64=10) %!d(string=hai) anos
pai
achega
f63c19f390
Modificáronse 4 ficheiros con 39 adicións e 23 borrados
  1. 4 0
      libnetwork/.gitignore
  2. 28 4
      libnetwork/Makefile
  3. 3 0
      libnetwork/README.md
  4. 4 19
      libnetwork/circle.yml

+ 4 - 0
libnetwork/.gitignore

@@ -22,3 +22,7 @@ _testmain.go
 *.exe
 *.test
 *.prof
+
+# Coverage
+*.tmp
+*.coverprofile

+ 28 - 4
libnetwork/Makefile

@@ -1,6 +1,9 @@
-.PHONY: all all-local build build-local check check-code check-format run-tests check-local install-deps
+.PHONY: all all-local build build-local check check-code check-format run-tests check-local install-deps coveralls circle-ci
 
-docker = docker run --rm --privileged -v $(shell pwd):/go/src/github.com/docker/libnetwork -w /go/src/github.com/docker/libnetwork golang:1.4
+dockerargs = --privileged -v $(shell pwd):/go/src/github.com/docker/libnetwork -w /go/src/github.com/docker/libnetwork golang:1.4
+docker = docker run --rm ${dockerargs}
+ciargs = -e "COVERALLS_TOKEN=$$COVERALLS_TOKEN"
+cidocker = docker run ${ciargs} ${dockerargs}
 
 all: 
 	${docker} make all-local
@@ -21,10 +24,19 @@ check-code:
 	go vet ./...
 
 check-format:
-	test -z "$$(shell goimports -l . | grep -v Godeps/_workspace/src/ | tee /dev/stderr)"
+	test -z "$$(goimports -l . | grep -v Godeps/_workspace/src/ | tee /dev/stderr)"
 
 run-tests:
-	$(shell which godep) go test -test.v ./...
+	echo "mode: count" > coverage.coverprofile
+	for dir in $$(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d); do \
+	    if ls $$dir/*.go &> /dev/null; then \
+            	$(shell which godep) go test -test.v -covermode=count -coverprofile=$$dir/profile.tmp $$dir ; \
+	        if [ -f $$dir/profile.tmp ]; then \
+		        cat $$dir/profile.tmp | tail -n +2 >> coverage.coverprofile ; \
+				rm $$dir/profile.tmp ; \
+            fi ; \
+        fi ; \
+	done
 
 check-local: 	check-format check-code run-tests 
 
@@ -34,3 +46,15 @@ install-deps:
 	go get github.com/golang/lint/golint
 	go get golang.org/x/tools/cmd/vet
 	go get golang.org/x/tools/cmd/goimports
+	go get golang.org/x/tools/cmd/cover
+	go get github.com/mattn/goveralls
+
+coveralls:
+	@goveralls -service circleci -coverprofile=coverage.coverprofile -repotoken $$COVERALLS_TOKEN
+
+# CircleCI's Docker fails when cleaning up using the --rm flag
+# The following target is a workaround for this
+
+circle-ci:
+	@${cidocker} make install-deps check-local coveralls
+

+ 3 - 0
libnetwork/README.md

@@ -1,4 +1,7 @@
 # libnetwork - networking for containers
+
+[![Circle CI](https://circleci.com/gh/docker/libnetwork/tree/master.svg?style=svg)](https://circleci.com/gh/docker/libnetwork/tree/master) [![Coverage Status](https://coveralls.io/repos/docker/libnetwork/badge.svg)](https://coveralls.io/r/docker/libnetwork)
+
 Libnetwork provides a native Go implementation for connecting containers
 
 The goal of libnetwork is to deliver a robust Container Network Model that provides a consistent programming interface and the required network abstractions for applications.

+ 4 - 19
libnetwork/circle.yml

@@ -1,27 +1,12 @@
 machine:
-    environment:
-        BASE_DIR: src/github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME
-        CHECKOUT: /home/ubuntu/$CIRCLE_PROJECT_REPONAME
-    pre:
-        # sudo -E doesn't preserve $PATH, so go isn't found anymore.
-        - sudo ln -s $(which go) /usr/local/bin
-
-checkout:
-    post:
-        # We need docker/libnetwork itself in the GOPATH for imports to work.
-        - ln -s $CHECKOUT $(echo $GOPATH | cut -d":" -f1)/$BASE_DIR
+    services:
+        - docker
 
 dependencies:
     override:
-        - go get github.com/tools/godep
-    post:
-        - go get github.com/golang/lint/golint
-        - go get golang.org/x/tools/cmd/goimports
+        - echo "Nothing to install"
 
 test:
     override:
-        - test -z "$(goimports -l . | grep -v Godeps/_workspace/src/ | tee /dev/stderr)"
-        - go vet ./...
-        - test -z "$(golint ./... | tee /dev/stderr)"
-        - sudo -E $(which godep) go test -test.v ./...
+        - make circle-ci