blob: ef0811868f9800b74c4df4c407b78dbe3665351f [file] [log] [blame] [edit]
#!/usr/bin/env bash
set -eo pipefail
PROTOC_VERSION="26.0"
PROTOC_GEN_GO_VERSION="v1.33.0"
CONNECT_VERSION="v1.16.1"
# Convert DOWNLOAD_CACHE from d:\path to /d/path
DOWNLOAD_CACHE="$(echo "/${DOWNLOAD_CACHE}" | sed 's|\\|/|g' | sed 's/://')"
mkdir -p "${DOWNLOAD_CACHE}"
PATH="${DOWNLOAD_CACHE}/protoc/bin:${PATH}"
if [ -f "${DOWNLOAD_CACHE}/protoc/bin/protoc.exe" ]; then
CACHED_PROTOC_VERSION="$("${DOWNLOAD_CACHE}/protoc/bin/protoc.exe" --version | cut -d " " -f 2)"
fi
if [ "${CACHED_PROTOC_VERSION}" != "$PROTOC_VERSION" ]; then
PROTOC_URL="https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protoc-${PROTOC_VERSION}-win64.zip"
curl -sSL -o "${DOWNLOAD_CACHE}/protoc.zip" "${PROTOC_URL}"
7z x -y -o"${DOWNLOAD_CACHE}/protoc" "${DOWNLOAD_CACHE}/protoc.zip"
mkdir -p "${DOWNLOAD_CACHE}/protoc/lib"
cp -a "${DOWNLOAD_CACHE}/protoc/include" "${DOWNLOAD_CACHE}/protoc/lib/include"
else
echo "Using cached protoc"
fi
PATH="${DOWNLOAD_CACHE}/protoc/bin:${PATH}"
go install google.golang.org/protobuf/cmd/protoc-gen-go@${PROTOC_GEN_GO_VERSION}
go install connectrpc.com/connect/cmd/protoc-gen-connect-go@${CONNECT_VERSION}
go install ./cmd/buf \
./private/buf/cmd/buf/command/alpha/protoc/internal/protoc-gen-insertion-point-writer \
./private/buf/cmd/buf/command/alpha/protoc/internal/protoc-gen-insertion-point-receiver \
./private/buf/cmd/buf/command/generate/internal/protoc-gen-top-level-type-names-yaml
go test ./...