From 7c938044b9411395f086498fe681da1bb39d1d97 Mon Sep 17 00:00:00 2001 From: Deanna Garcia Date: Wed, 31 Jul 2024 10:32:18 -0700 Subject: [PATCH] Refactor java maven GHA test to use our generated jars. This allows us to test our maven setup without relying on static `pom.xml` files and clears the way to remove them in a subsequent CL. PiperOrigin-RevId: 658057911 --- .github/workflows/test_java.yml | 36 ++++++++------------------------- 1 file changed, 8 insertions(+), 28 deletions(-) diff --git a/.github/workflows/test_java.yml b/.github/workflows/test_java.yml index 189e5c2907..cad3aa6f9e 100644 --- a/.github/workflows/test_java.yml +++ b/.github/workflows/test_java.yml @@ -79,7 +79,7 @@ jobs: # # TODO: b/318555165 - enable the layering check. Currently it does # # not work correctly with the toolchain in this Docker image. # bazel: test --test_output=all //java:linkage_monitor --spawn_strategy=standalone --features=-layering_check - + protobuf-bom: name: Protobuf Maven BOM runs-on: ubuntu-latest @@ -88,39 +88,19 @@ jobs: uses: protocolbuffers/protobuf-ci/checkout@v3 with: ref: ${{ inputs.safe-checkout }} - - name: Build protoc - id: build-protoc - uses: protocolbuffers/protobuf-ci/cross-compile-protoc@v3 - with: - image: us-docker.pkg.dev/protobuf-build/containers/common/linux/bazel:6.3.0-91a0ac83e968068672bc6001a4d474cfd9a50f1d - credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} - architecture: linux-x86_64 - - name: Move protoc into place and clean up - run: | - mv ${{ steps.build-protoc.outputs.protoc }} protoc - sudo rm -rf _build - - name: Install snapshot version locally (not using generated pom.xml) - run: | - mvn -e -B -Dhttps.protocols=TLSv1.2 install -Dmaven.test.skip=true - working-directory: java - - name: Generate pom.xml files from the template + - name: Generate maven artifacts with bazel and install using maven uses: protocolbuffers/protobuf-ci/bazel-docker@v3 with: image: us-docker.pkg.dev/protobuf-build/containers/test/linux/java:11-1fdbb997433cb22c1e49ef75ad374a8d6bb88702 credentials: ${{ secrets.GAR_SERVICE_ACCOUNT }} bazel-cache: java_linux/11 - # protobuf-java and protobuf-java-util are the member of the BOM bash: | - bazel build //java/core:core_mvn-pom //java/util:util_mvn-pom - cp bazel-bin/java/core/core_mvn-pom.xml . - cp bazel-bin/java/util/util_mvn-pom.xml . - - name: Copy the generated pom.xml files to the local Maven repository - shell: bash - run: | - LOCAL_MAVEN_GROUP_DIR="${HOME}/.m2/repository/com/google/protobuf" - VERSION=$(grep "" core_mvn-pom.xml | sed "s/\(.*\)<\/version>/\1/" | xargs) - cp core_mvn-pom.xml ${LOCAL_MAVEN_GROUP_DIR}/protobuf-java/${VERSION}/protobuf-java-${VERSION}.pom - cp util_mvn-pom.xml ${LOCAL_MAVEN_GROUP_DIR}/protobuf-java-util/${VERSION}/protobuf-java-util-${VERSION}.pom + bazel build //java:release + mvn install:install-file -Dfile=bazel-bin/java/core/core_mvn-project.jar -DpomFile=bazel-bin/java/core/core_mvn-pom.xml + mvn install:install-file -Dfile=bazel-bin/java/core/lite_mvn-project.jar -DpomFile=bazel-bin/java/core/lite_mvn-pom.xml + mvn install:install-file -Dfile=bazel-bin/java/kotlin-lite/kotlin-lite_mvn-project.jar -DpomFile=bazel-bin/java/kotlin-lite/kotlin-lite_mvn-pom.xml + mvn install:install-file -Dfile=bazel-bin/java/kotlin/kotlin_mvn-project.jar -DpomFile=bazel-bin/java/kotlin/kotlin_mvn-pom.xml + mvn install:install-file -Dfile=bazel-bin/java/util/util_mvn-project.jar -DpomFile=bazel-bin/java/util/util_mvn-pom.xml - name: Clean up run: | sudo rm -rf _build