Skip to content

Commit

Permalink
chore: Add test for latest protobuf version
Browse files Browse the repository at this point in the history
  • Loading branch information
lqiu96 committed Jun 25, 2024
1 parent b3d5e7d commit 49dc0bb
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions .kokoro/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,79 @@ source ${scriptDir}/common.sh
mvn -version
echo ${JOB_TYPE}

# Store the current Java version since the version may change when installing sdk-platform-java
current_java_home=$JAVA_HOME

# testing-infra-docker has Java 11 installed in java8 docker container. Use this as sdk-platform-java
# needs Java 11+ to run with GraalVM. For GH actions, JAVA11_HOME does not exist and would skip this.
if [ ! -z "${JAVA11_HOME}" ]; then
export JAVA_HOME="${JAVA11_HOME}"
export PATH=${JAVA_HOME}/bin:$PATH
fi

# Get the current proto runtime version used in this repo
CURRENT_PROTO_VERSION=$(mvn -ntp help:effective-pom |
sed -n "/<artifactId>protobuf-java<\/artifactId>/,/<\/dependency>/ {
/<version>/{
s/<version>\(.*\)<\/version>/\1/p
q
}
}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
echo "The current proto version is: ${CURRENT_PROTO_VERSION}"

# Find the latest proto runtime version available
LATEST_PROTO_VERSION=$(curl -s https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/maven-metadata.xml | sed -n '/<release>/s/.*<release>\(.*\)<\/release>.*/\1/p')
echo "The latest proto version is: ${LATEST_PROTO_VERSION}"

# Only reinstall shared-deps again to test for a newer proto version
if [[ "${CURRENT_PROTO_VERSION}" != "${LATEST_PROTO_VERSION}" ]]; then
pushd /tmp
git clone https://github.com/googleapis/sdk-platform-java.git
pushd sdk-platform-java
pushd gapic-generator-java-pom-parent
sed -i "/<protobuf.version>.*<\/protobuf.version>/s/\(.*<protobuf.version>\).*\(<\/protobuf.version>\)/\1${LATEST_PROTO_VERSION}\2/" pom.xml
# sdk-platform-java
popd

pushd sdk-platform-java-config
# Get current Shared-Deps version in sdk-platform-java
SHARED_DEPS_VERSION=$(mvn -ntp help:effective-pom |
sed -n "/<artifactId>sdk-platform-java-config<\/artifactId>/,/<\/dependency>/ {
/<version>/{
s/<version>\(.*\)<\/version>/\1/p
q
}
}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
echo "Shared-Deps Version: ${SHARED_DEPS_VERSION}"
# sdk-platform-java
popd

mvn clean install -q -ntp \
-DskipTests=true \
-Dclirr.skip=true \
-Denforcer.skip=true \
-T 1C
# /tmp
popd

# Back to the original directory of the repo
popd
# Find all the poms with a reference to shared-deps and update to the new local version
poms=($(find . -name pom.xml))
for pom in "${poms[@]}"; do
if grep -q "sdk-platform-java-config" "${pom}"; then
echo "Updating the pom: ${pom} to use shared-deps version: ${SHARED_DEPS_VERSION}"
sed -i -E "/<groupId>com.google.cloud<\/groupId>.*<artifactId>sdk-platform-java-config<\/artifactId>/ {
s/(<version>)[^<]+(<\/version>)/\1${SHARED_DEPS_VERSION}\2/
}" "${pom}"
fi
done
fi

# Reset back to the original Java version if changed
export JAVA_HOME="${current_java_home}"
export PATH=${JAVA_HOME}/bin:$PATH

# attempt to install 3 times with exponential backoff (starting with 10 seconds)
retry_with_backoff 3 10 \
mvn install -B -V -ntp \
Expand Down

0 comments on commit 49dc0bb

Please sign in to comment.