| set -e |
| |
| # This script updates server and client go binaries for interop tests. |
| # It clones grpc-go, compiles interop clients and servers for linux, windows |
| # and macos and finally deletes the cloned repo. |
| # |
| # It is not meant to be executed on every test run or CI and should run from |
| # inside tonic/interop. |
| |
| command -v go >/dev/null 2>&1 || { |
| echo >&2 "go executable is not available" |
| exit 1 |
| } |
| |
| if [ ! -d "./grpc-go" ]; then |
| git clone https://github.com/grpc/grpc-go.git |
| fi |
| |
| cd grpc-go |
| |
| PLATFORMS="darwin linux windows" |
| ROLES="client server" |
| ARCH=amd64 |
| |
| for ROLE in $ROLES; do |
| for OS in $PLATFORMS; do |
| FILENAME="${ROLE}_${OS}_${ARCH}" |
| if [[ "${OS}" == "windows" ]]; then FILENAME="${FILENAME}.exe"; fi |
| GOOS=$OS GOARCH=$ARCH go build -o "../bin/$FILENAME" "./interop/$ROLE" |
| done |
| done |
| |
| rm -rf ../grpc-go |