diff --git a/.travis.yml b/.travis.yml index 764e379c..3b8b2bfd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,34 @@ language: go -gobuild_args: -x -ldflags "-X main.githash=$(git log --pretty=format:'%h' -n 1)" go: - - 1.6.x - 1.7.x - 1.8.x - - master + - tip +install: true + +matrix: + # It's ok if our code fails on unstable development versions of Go. + allow_failures: + - go: tip + # Don't wait for tip tests to finish. Mark the test run green if the + # tests pass on the stable versions of Go. + fast_finish: true + +notifications: + email: false + +before_script: + - GO_FILES=$(find . -iname '*.go' | grep -v /vendor/) # All the .go files, excluding vendor/ + - PKGS=$(go list ./... | grep -v /vendor/) # All the import paths, excluding vendor/ +# - go get github.com/golang/lint/golint # Linter + - go get honnef.co/go/tools/cmd/megacheck # Badass static analyzer/linter + +# Anything in before_script: that returns a nonzero exit code will +# flunk the build and immediately stop. It's sorta like having +# set -e enabled in bash. +script: +script: + - test -z $(gofmt -s -l $GO_FILES) # Fail if a .go file hasn't been formatted with gofmt + #- go test -v -race $PKGS # Run all the tests with the race detector enabled + - go vet $PKGS # go vet is the official Go static analyzer + - megacheck $PKGS # "go vet on steroids" + linter + #- golint -set_exit_status $PKGS # one last linter