diff --git a/.travis.yml b/.travis.yml index f3982c02a..534c9501a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,9 +36,8 @@ before_install: - uname -r install: - - wget https://github.com/google/protobuf/releases/download/v3.1.0/protoc-3.1.0-linux-x86_64.zip -O /tmp/protoc-3.1.0-linux-x86_64.zip - - unzip -o -d /tmp/protobuf /tmp/protoc-3.1.0-linux-x86_64.zip - - export PATH=$PATH:/tmp/protobuf/bin/ + - wget https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip -O /tmp/protoc-3.3.0-linux-x86_64.zip + - sudo unzip -o -d /usr/local /tmp/protoc-3.3.0-linux-x86_64.zip - go get -u github.com/vbatts/git-validation - sudo wget https://github.com/crosbymichael/runc/releases/download/ctd-4/runc -O /bin/runc; sudo chmod +x /bin/runc - wget https://github.com/xemul/criu/archive/v3.0.tar.gz -O /tmp/criu.tar.gz @@ -57,6 +56,7 @@ script: - make setup - make vet - make ineffassign + - if [ "$GOOS" = "linux" ]; then make check-protos check-api-descriptors; fi - make build - make binaries - if [ "$GOOS" = "linux" ]; then sudo make install ; fi diff --git a/Makefile b/Makefile index aef96906b..f4aec50a1 100644 --- a/Makefile +++ b/Makefile @@ -83,12 +83,18 @@ protos: bin/protoc-gen-gogoctrd ## generate protobuf @echo "$(WHALE) $@" @PATH=${ROOTDIR}/bin:${PATH} protobuild ${PACKAGES} -checkprotos: protos ## check if protobufs needs to be generated again +check-protos: protos ## check if protobufs needs to be generated again @echo "$(WHALE) $@" @test -z "$$(git status --short | grep ".pb.go" | tee /dev/stderr)" || \ ((git diff | cat) && \ (echo "$(ONI) please run 'make generate' when making changes to proto files" && false)) +check-api-descriptors: protos ## check that protobuf changes aren't present. + @echo "$(WHALE) $@" + @test -z "$$(git status --short | grep ".pb.txt" | tee /dev/stderr)" || \ + ((git diff $$(find . -name '*.pb.txt') | cat) && \ + (echo "$(ONI) please run 'make protos' when making changes to proto files and check-in the generated descriptor file changes" && false)) + # Depends on binaries because vet will silently fail if it can't load compiled # imports vet: ## run go vet