diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 7eca4c6d5f0..25b56db3b07 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -108,6 +108,7 @@ jobs: distribution: temurin - run: echo "JAVA11_HOME=${JAVA_HOME}" >> $GITHUB_ENV shell: bash + - run: git config --system core.longpaths true - run: java -version - run: .kokoro/build.bat env: diff --git a/.kokoro/build.sh b/.kokoro/build.sh index f8ae5a96f37..77a92475e1b 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -33,6 +33,81 @@ fi 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 + +# Get the current proto runtime version used in this repo +CURRENT_PROTO_VERSION=$(mvn -ntp help:effective-pom | +sed -n "/protobuf-java<\/artifactId>/,/<\/dependency>/ { + //{ + s/\(.*\)<\/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="4.28.2" +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 + # 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 + + 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>/s/\(.*\).*\(<\/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 "/sdk-platform-java-config<\/artifactId>/,/<\/dependency>/ { + //{ + s/\(.*\)<\/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 "/sdk-platform-java-config<\/artifactId>/,/<\/parent>/ s/.*<\/version>/$SHARED_DEPS_VERSION<\/version>/" "${pom}" +# xmlstarlet ed --inplace -N x="http://maven.apache.org/POM/4.0.0" \ +# -u "//x:project/x:parent[x:artifactId='sdk-platform-java-config']/x:version" \ +# -v "${SHARED_DEPS_VERSION}" \ +# "${pom}" + fi + done + + # Reset back to the original Java version if changed + export JAVA_HOME="${current_java_home}" + export PATH=${JAVA_HOME}/bin:$PATH +fi + # attempt to install 3 times with exponential backoff (starting with 10 seconds) retry_with_backoff 3 10 \ mvn install -B -V -ntp \ diff --git a/proto-google-cloud-spanner-admin-database-v1/clirr-ignored-differences.xml b/proto-google-cloud-spanner-admin-database-v1/clirr-ignored-differences.xml index 3799fb341ac..a9e71185e18 100644 --- a/proto-google-cloud-spanner-admin-database-v1/clirr-ignored-differences.xml +++ b/proto-google-cloud-spanner-admin-database-v1/clirr-ignored-differences.xml @@ -17,7 +17,6 @@ boolean has*(*) - 7006 com/google/spanner/admin/database/v1/** diff --git a/proto-google-cloud-spanner-admin-instance-v1/clirr-ignored-differences.xml b/proto-google-cloud-spanner-admin-instance-v1/clirr-ignored-differences.xml index fa9181b755b..211cc245d49 100644 --- a/proto-google-cloud-spanner-admin-instance-v1/clirr-ignored-differences.xml +++ b/proto-google-cloud-spanner-admin-instance-v1/clirr-ignored-differences.xml @@ -17,7 +17,6 @@ boolean has*(*) - 7006 com/google/spanner/admin/instance/v1/** diff --git a/proto-google-cloud-spanner-executor-v1/clirr-ignored-differences.xml b/proto-google-cloud-spanner-executor-v1/clirr-ignored-differences.xml index c8787595be2..4c6a3c0573f 100644 --- a/proto-google-cloud-spanner-executor-v1/clirr-ignored-differences.xml +++ b/proto-google-cloud-spanner-executor-v1/clirr-ignored-differences.xml @@ -37,7 +37,6 @@ com/google/spanner/executor/v1/SpannerExecutorProxyGrpc$SpannerExecutorProxyStub - 7006 com/google/spanner/executor/v1/** diff --git a/proto-google-cloud-spanner-v1/clirr-ignored-differences.xml b/proto-google-cloud-spanner-v1/clirr-ignored-differences.xml index 89fd05b2e3c..592a9726f3b 100644 --- a/proto-google-cloud-spanner-v1/clirr-ignored-differences.xml +++ b/proto-google-cloud-spanner-v1/clirr-ignored-differences.xml @@ -17,7 +17,6 @@ boolean has*(*) - 7006 com/google/spanner/v1/**