summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Collins <dave@davec.name>2015-01-24 17:32:43 -0600
committerDave Collins <dave@davec.name>2015-01-24 17:42:22 -0600
commit620cbd48ecf96511639cb4d2e5fbf573ae03d22f (patch)
treead93d4a5e6f8c7a0c4adab50ac677d00759799c8
parent5790c156f0a05cbca26a71ddbd704c34a21ceb8c (diff)
downloadgo-xdr-620cbd48ecf96511639cb4d2e5fbf573ae03d22f.tar.xz
Update TravisCI to goclean script.
-rw-r--r--.travis.yml14
-rwxr-xr-xgoclean.sh39
2 files changed, 49 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml
index f2fc849..7c5fdf6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,12 +2,18 @@ language: go
go:
- release
- tip
+before_install:
+ - gotools=golang.org/x/tools
+ - if [ "$TRAVIS_GO_VERSION" = "release" ] || [ "$TRAVIS_GO_VERSION" = "go1.3.3" ]; then gotools=code.google.com/p/go.tools; fi
install:
- go get -d -t -v ./...
- - go get -v code.google.com/p/go.tools/cmd/cover
+ - go get -v $gotools/cmd/cover
+ - go get -v $gotools/cmd/vet
+ - go get -v github.com/bradfitz/goimports
+ - go get -v github.com/golang/lint/golint
script:
- - go test -v ./xdr2 -covermode=count -coverprofile=profile.cov
+ - export PATH=$PATH:$HOME/gopath/bin
+ - ./goclean.sh
after_success:
- go get -v github.com/mattn/goveralls
- - export PATH=$PATH:$HOME/gopath/bin
- - goveralls -coverprofile=profile.cov -service=travis-ci
+ - goveralls -coverprofile=xdr2/profile.cov -service=travis-ci
diff --git a/goclean.sh b/goclean.sh
new file mode 100755
index 0000000..5e996cb
--- /dev/null
+++ b/goclean.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+# The script does automatic checking on a Go package and its sub-packages, including:
+# 1. gofmt (http://golang.org/cmd/gofmt/)
+# 2. goimports (https://github.com/bradfitz/goimports)
+# 3. golint (https://github.com/golang/lint)
+# 4. go vet (http://golang.org/cmd/vet)
+# 5. test coverage (http://blog.golang.org/cover)
+
+set -e
+
+# Automatic checks
+cd xdr2
+test -z "$(gofmt -l -w . | tee /dev/stderr)"
+test -z "$(goimports -l -w . | tee /dev/stderr)"
+test -z "$(golint . | tee /dev/stderr)"
+go vet ./...
+env GORACE="halt_on_error=1" go test -v -race ./...
+
+# Run test coverage on each subdirectories and merge the coverage profile.
+
+echo "mode: count" > profile.cov
+
+# Standard go tooling behavior is to ignore dirs with leading underscores.
+for dir in $(find . -maxdepth 10 -not -path './.git*' -not -path '*/_*' -type d);
+do
+if ls $dir/*.go &> /dev/null; then
+ go test -covermode=count -coverprofile=$dir/profile.tmp $dir
+ if [ -f $dir/profile.tmp ]; then
+ cat $dir/profile.tmp | tail -n +2 >> profile.cov
+ rm $dir/profile.tmp
+ fi
+fi
+done
+
+go tool cover -func profile.cov
+
+# To submit the test coverage result to coveralls.io,
+# use goveralls (https://github.com/mattn/goveralls)
+# goveralls -coverprofile=profile.cov -service=travis-ci