diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..211274170 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,22 @@ +language: go + +go: + - 1.9.x + - master + +env: + - TRAVIS_GOOS=linux + - TRAVIS_GOOS=darwin + - TRAVIS_GOOS=windows + +script: +# We want native versions of the tools. + - go get -u github.com/golang/lint/golint + - go get -u github.com/gordonklaus/ineffassign + - export GOOS=$TRAVIS_GOOS +# FIXME: For non-linux GOOS, without running `go build -i`, vet fails with `vet: import failed: can't find import: fmt`... +# Note that `go build -i` requires write permission to GOROOT. (So it is not called in Makefile) + - go build -i github.com/linuxkit/linuxkit/src/cmd/linuxkit + - make local-check + - make local-build + - if [ "$GOOS" = "linux" ]; then make local-test ; fi diff --git a/Makefile b/Makefile index 8684e1496..bdf988ced 100644 --- a/Makefile +++ b/Makefile @@ -74,7 +74,7 @@ test-cross: .PHONY: local-check local-build local-test local local-check: $(LINUXKIT_DEPS) - @echo gofmt... && gofmt -s -l $(filter %.go,$(LINUXKIT_DEPS)) + @echo gofmt... && o=$$(gofmt -s -l $(filter %.go,$(LINUXKIT_DEPS))) && if [ -n "$$o" ] ; then echo $$o ; exit 1 ; fi @echo govet... && go tool vet -printf=false $(filter %.go,$(LINUXKIT_DEPS)) @echo golint... && set -e ; for i in $(filter %.go,$(LINUXKIT_DEPS)); do golint $$i ; done @echo ineffassign... && ineffassign $(filter %.go,$(LINUXKIT_DEPS))