diff --git a/.travis.yml b/.travis.yml index 7b4af07dd7..8fc07fe803 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,16 +3,7 @@ go: 1.9.x before_install: -- bash ci/install-protobuf.sh -- go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway -- go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger -- rm -rf $GOPATH/src/github.com/golang/protobuf -- git clone -b v1.2.0 https://github.com/golang/protobuf $GOPATH/src/github.com/golang/protobuf -- go install github.com/golang/protobuf/protoc-gen-go -- protoc --version -- bash ci/genproto.sh -- go get -u github.com/kardianos/govendor -- govendor sync +- sudo -E env "PATH=$PATH" ./setup_env.sh branches: diff --git a/ci/genproto.sh b/ci/genproto.sh index 037efb323e..33250fc937 100755 --- a/ci/genproto.sh +++ b/ci/genproto.sh @@ -1,4 +1,4 @@ -#!bin/bash +#!/bin/bash -e res=$(find . -not -path ./vendor/ -not -path ./.git/ -not -path ./.idea/ -type d -name "pb") #echo $res while read -r p; do @@ -6,6 +6,7 @@ while read -r p; do protoc -I/usr/local/include -I. -I$GOPATH/src -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis --go_out=plugins=grpc:. $p/*.proto done <<< "$res" +pushd . > /dev/null cd api/pb/ protoc -I/usr/local/include -I. \ @@ -25,3 +26,5 @@ protoc -I/usr/local/include -I. \ -I$GOPATH/src/github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis \ --swagger_out=logtostderr=true:. \ api.proto + +popd > /dev/null diff --git a/ci/install-protobuf.sh b/ci/install-protobuf.sh old mode 100644 new mode 100755 index 1b370e1783..db9d85923a --- a/ci/install-protobuf.sh +++ b/ci/install-protobuf.sh @@ -1,12 +1,34 @@ -#!/bin/sh +#!/bin/bash -e +# Detect OS and architecture +if [[ $(uname -s) == "Linux" ]]; then + os="linux"; +elif [[ $(uname -s) == "Darwin" ]]; then # MacOS + os="osx"; +else + echo "unsupported OS, protoc not installed" + exit 1; +fi +arch=$(uname -m) +protoc_url=https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-${os}-${arch}.zip + # Make sure you grab the latest version -curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-linux-x86_64.zip +echo "fetching ${protoc_url}" +curl -L -o "protoc.zip" ${protoc_url} # Unzip -unzip protoc-3.6.1-linux-x86_64.zip -d protoc3 +echo "extracting..." +unzip -u protoc.zip -d protoc3 # Move protoc to /usr/local/bin/ -sudo mv protoc3/bin/* /usr/local/bin/ +echo "moving bin to /usr/local/" +mv protoc3/bin/* /usr/local/bin/ # Move protoc3/include to /usr/local/include/ -sudo mv protoc3/include/* /usr/local/include/ +echo "syncing include to /usr/local/include" +rsync -a protoc3/include/ /usr/local/include/ + +# Cleanup +echo "cleaning up..." +rm protoc.zip +rm -rf protoc3 +echo "done" diff --git a/setup_env.sh b/setup_env.sh new file mode 100755 index 0000000000..528a5f46bf --- /dev/null +++ b/setup_env.sh @@ -0,0 +1,23 @@ +#!/bin/bash -e +./ci/install-protobuf.sh + +echo "getting grpc-gateway..." +if [ -d "$GOPATH/src/github.com/golang/protobuf" ]; then + pushd . > /dev/null && cd $GOPATH/src/github.com/golang/protobuf && git checkout -q master + popd > /dev/null +fi +go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway +go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger + +echo "fixing protobuf version..." +pushd . > /dev/null && cd $GOPATH/src/github.com/golang/protobuf && git checkout -q v1.2.0 +popd > /dev/null + +echo "installing protoc-gen-go..." +go install github.com/golang/protobuf/protoc-gen-go +protoc --version + +./ci/genproto.sh + +go get -u github.com/kardianos/govendor +govendor sync