Files
tonic/interop/update_binaries.sh
T
2020-08-31 10:23:50 -05:00

33 lines
824 B
Bash
Executable File

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